Class: CanTango::PermitEngine
- Inherits:
-
Engine
- Object
- Engine
- CanTango::PermitEngine
show all
- Defined in:
- lib/cantango/permit_engine.rb,
lib/cantango/permit_engine/util.rb,
lib/cantango/permit_engine/finder.rb,
lib/cantango/permit_engine/builder.rb,
lib/cantango/permit_engine/factory.rb,
lib/cantango/permit_engine/executor.rb,
lib/cantango/permit_engine/builder/base.rb,
lib/cantango/permit_engine/role_matcher.rb,
lib/cantango/permit_engine/compatibility.rb,
lib/cantango/permit_engine/executor/base.rb,
lib/cantango/permit_engine/executor/system.rb,
lib/cantango/permit_engine/executor/abstract.rb,
lib/cantango/permit_engine/builder/special_permits.rb
Defined Under Namespace
Modules: Builder, Compatibility, Executor, RoleMatcher, Util
Classes: Factory, Finder
Instance Attribute Summary
Attributes inherited from Engine
#ability
Instance Method Summary
collapse
#debug
Constructor Details
Returns a new instance of PermitEngine.
6
7
8
|
# File 'lib/cantango/permit_engine.rb', line 6
def initialize ability
super
end
|
Instance Method Details
#engine_name ⇒ Object
21
22
23
|
# File 'lib/cantango/permit_engine.rb', line 21
def engine_name
:permit
end
|
#execute! ⇒ Object
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/cantango/permit_engine.rb', line 10
def execute!
return if !valid?
debug "Permit Engine executing..."
permits.each do |permit|
CanTango.config.permits.was_executed(permit, ability) if CanTango.config.debug.on?
break if permit.execute == :break
end
end
|
#permit_class_names ⇒ Object
37
38
39
|
# File 'lib/cantango/permit_engine.rb', line 37
def permit_class_names
@permit_class_names ||= permits.map{|p| p.class.to_s}
end
|
#permits ⇒ Object
by default, only execute permits for which the user has a role or a role group also execute any permit marked as special
33
34
35
|
# File 'lib/cantango/permit_engine.rb', line 33
def permits
@permits ||= permit_factory.build!
end
|
#valid? ⇒ Boolean
25
26
27
28
|
# File 'lib/cantango/permit_engine.rb', line 25
def valid?
return false if !valid_mode?
permits.empty? ? invalid : true
end
|