Class: Acl
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Acl
- Includes:
- RubyLess, Zena::Acts::Secure
- Defined in:
- app/models/acl.rb
Constant Summary collapse
- ACTIONS =
List of access actions, ordered for their use in the form.
%w{read update create delete}
- ACTION_FROM_METHOD =
Hash[:get,'read',:put,'update',:post,'create',:delete,'delete']
Instance Attribute Summary collapse
-
#node ⇒ Object
readonly
Used during script compilation.
-
#params ⇒ Object
readonly
Used during script compilation.
Instance Method Summary collapse
- #authorize?(base_node, params, request) ⇒ Boolean
- #create_vclass_name ⇒ Object
- #exec_skin ⇒ Object
- #exec_skin_zip ⇒ Object
- #safe_method_type(signature, receiver = nil) ⇒ Object
-
#visitor ⇒ Object
Make visitor public so that we can use ‘visitor’ in queries.
Methods included from Zena::Acts::Secure
#secure_scope, #secure_write_scope, #visitor=
Methods included from Zena::Acts::Secure::SecureResult
#construct_id_map, #secure_result
Instance Attribute Details
#node ⇒ Object (readonly)
Used during script compilation
3 4 5 |
# File 'app/models/acl.rb', line 3 def node @node end |
#params ⇒ Object (readonly)
Used during script compilation
3 4 5 |
# File 'app/models/acl.rb', line 3 def params @params end |
Instance Method Details
#authorize?(base_node, params, request) ⇒ Boolean
31 32 33 34 35 36 37 38 |
# File 'app/models/acl.rb', line 31 def (base_node, params, request) res = Node.find_by_sql(eval(make_query(base_node, params, request).to_s)) rescue nil if res.empty? nil else secure_result(res.first) end end |
#create_vclass_name ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 |
# File 'app/models/acl.rb', line 53 def create_vclass_name if create_kpath if klass = VirtualClass.find_by_kpath(create_kpath) klass.name else create_kpath end else 'Node' end end |
#exec_skin ⇒ Object
44 45 46 |
# File 'app/models/acl.rb', line 44 def exec_skin @exec_skin ||= secure(Skin) { Skin.find(exec_skin_id) } end |
#exec_skin_zip ⇒ Object
40 41 42 |
# File 'app/models/acl.rb', line 40 def exec_skin_zip exec_skin ? exec_skin.zip : nil end |
#safe_method_type(signature, receiver = nil) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'app/models/acl.rb', line 21 def safe_method_type(signature, receiver = nil) if type = super type elsif type = node.safe_method_type(signature) type.merge(:method => "@node.#{type[:method]}") else nil end end |
#visitor ⇒ Object
Make visitor public so that we can use ‘visitor’ in queries.
49 50 51 |
# File 'app/models/acl.rb', line 49 def visitor super end |