| Class | Authorization::Reader::PrivilegesReader |
| In: |
lib/declarative_authorization/reader.rb
|
| Parent: | Object |
The PrivilegeReader handles the part of the authorization DSL in a privileges block. Here, privilege hierarchies are defined.
Specifies privileges that are to be assigned as lower ones. Only to be used inside a privilege block.
# File lib/declarative_authorization/reader.rb, line 180
180: def includes (*privileges)
181: raise DSLError, "includes only in privilege block" if @current_priv.nil?
182: privileges.each do |priv|
183: append_privilege priv
184: @privilege_hierarchy[@current_priv] ||= []
185: @privilege_hierarchy[@current_priv] << [priv, @current_context]
186: end
187: end
Defines part of a privilege hierarchy. For the given privilege, included privileges may be defined in the block (through includes) or as option :includes. If the optional context is given, the privilege hierarchy is limited to that context.
# File lib/declarative_authorization/reader.rb, line 163
163: def privilege (privilege, context = nil, options = {}, &block)
164: if context.is_a?(Hash)
165: options = context
166: context = nil
167: end
168: @current_priv = privilege
169: @current_context = context
170: append_privilege privilege
171: instance_eval(&block) if block
172: includes(*options[:includes]) if options[:includes]
173: ensure
174: @current_priv = nil
175: @current_context = nil
176: end