Module: BreakDance::ControllerAdditions
- Defined in:
- lib/break_dance/controller_additions.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #can?(action, resource) ⇒ Boolean
- #cannot?(action, resource) ⇒ Boolean
- #current_permissions ⇒ Object
Class Method Details
.included(base) ⇒ Object
10 11 12 13 |
# File 'lib/break_dance/controller_additions.rb', line 10 def self.included(base) base.extend ClassMethods base.helper_method :can?, :cannot? end |
Instance Method Details
#can?(action, resource) ⇒ Boolean
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/break_dance/controller_additions.rb', line 15 def can?(action, resource) return true unless RequestLocals.store[:break_dance_enabled] = ['resources'].select { |_,v| v == '1'} allowed = .any? do |r| RequestLocals.store[:break_dance_policy].resources[r[0].to_sym] and RequestLocals.store[:break_dance_policy].resources[r[0].to_sym][:can].any? do |k,v| v = Array.wrap(v) k == resource.to_sym && ( ( v.include?(:all_actions) && !( RequestLocals.store[:break_dance_policy].resources[r[0].to_sym][:except] && RequestLocals.store[:break_dance_policy].resources[r[0].to_sym][:except][resource.to_sym] && RequestLocals.store[:break_dance_policy].resources[r[0].to_sym][:except][resource.to_sym].include?(action.to_sym) ) ) || v.include?(action.to_sym) ) end end allowed end |
#cannot?(action, resource) ⇒ Boolean
38 39 40 |
# File 'lib/break_dance/controller_additions.rb', line 38 def cannot?(action, resource) !can?(action, resource) end |
#current_permissions ⇒ Object
42 43 44 |
# File 'lib/break_dance/controller_additions.rb', line 42 def Permissions.for_user(current_user) end |