Class: AccessContext
- Inherits:
-
Object
show all
- Defined in:
- lib/access_context.rb,
lib/access_context/role.rb,
lib/access_context/version.rb,
lib/access_context/permission.rb,
lib/access_context/configuration.rb
Defined Under Namespace
Modules: Configuration
Classes: Error, Permission, Role
Constant Summary
collapse
- VERSION =
"1.1.0"
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(type, name, target = nil) ⇒ AccessContext
Returns a new instance of AccessContext.
41
42
43
44
45
|
# File 'lib/access_context.rb', line 41
def initialize(type, name, target=nil)
@type = type.to_sym
@name = name.to_sym
@target = target&.to_sym
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
39
40
41
|
# File 'lib/access_context.rb', line 39
def name
@name
end
|
#target ⇒ Object
Returns the value of attribute target.
39
40
41
|
# File 'lib/access_context.rb', line 39
def target
@target
end
|
#type ⇒ Object
Returns the value of attribute type.
39
40
41
|
# File 'lib/access_context.rb', line 39
def type
@type
end
|
Class Method Details
.config(&block) ⇒ Object
17
18
19
|
# File 'lib/access_context.rb', line 17
def config(&block)
Configuration.module_eval(&block)
end
|
.controller(name, target) ⇒ Object
21
22
23
|
# File 'lib/access_context.rb', line 21
def controller(name, target)
AccessContext.new(:controller, name, target)
end
|
.job(name, target) ⇒ Object
33
34
35
|
# File 'lib/access_context.rb', line 33
def job(name, target)
AccessContext.new(:job, name, target)
end
|
.service(name, target) ⇒ Object
25
26
27
|
# File 'lib/access_context.rb', line 25
def service(name, target)
AccessContext.new(:service, name, target)
end
|
.view(name, target) ⇒ Object
29
30
31
|
# File 'lib/access_context.rb', line 29
def view(name, target)
AccessContext.new(:view, name, target)
end
|
Instance Method Details
#contains?(context) ⇒ Boolean
57
58
59
60
61
62
63
64
|
# File 'lib/access_context.rb', line 57
def contains?(context)
type == context.type &&
name == context.name &&
(
target == context.target ||
target.blank?
)
end
|
#permit?(user) ⇒ Boolean
47
48
49
|
# File 'lib/access_context.rb', line 47
def permit?(user)
permit_role?(user.role)
end
|
#permit_role?(role) ⇒ Boolean
51
52
53
54
55
|
# File 'lib/access_context.rb', line 51
def permit_role?(role)
AccessContext::Role[role].permissions.any? do |permission|
permission.permit?(self)
end
end
|