class ActivePermission::Base
class UserPermission < ActivePermission::Base
def initialize(user) if user.admin? can 'manage/root', :index else can 'root', :all end end
end
Public Instance Methods
can(controllers, actions, &block)
click to toggle source
# File lib/active_permission/base.rb, line 12 def can(controllers, actions, &block) @allowed_actions ||= {} Array(controllers).each do |controller| Array(actions).each do |action| @allowed_actions[[controller.to_s, action.to_s]] = block || true end end end
can!(controllers, actions, *resource)
click to toggle source
# File lib/active_permission/base.rb, line 20 def can!(controllers, actions, *resource) @allowed_actions ||= {} Array(controllers).each do |controller| Array(actions).each do |action| allowed = @allowed_actions[[controller.to_s, action.to_s]] result = allowed && (allowed == true || resource && allowed.call(*resource)) if result == true return result else raise AccessDenied.new(controller, action, resource) end end end false end
can?(controllers, actions, *resource)
click to toggle source
# File lib/active_permission/base.rb, line 35 def can?(controllers, actions, *resource) can!(controllers, actions, *resource) rescue AccessDenied false end