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
-
#asset_host? ⇒ Boolean
Returns true if we are on the asset host.
- #authorize?(base_node, params, request) ⇒ Boolean
- #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
#asset_host? ⇒ Boolean
Returns true if we are on the asset host.
49 50 51 |
# File 'app/models/acl.rb', line 49 def asset_host? @asset_host end |
#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)) if res.empty? nil else secure_result(res.first) 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.
54 55 56 |
# File 'app/models/acl.rb', line 54 def visitor super end |