module Dancan
Constants
- VERSION
Public Class Methods
policy(user, record)
click to toggle source
# File lib/dancan.rb, line 21 def policy(user, record) policy = PolicyFinder.new(record).policy policy.new(user, record) if policy end
policy!(user, record)
click to toggle source
# File lib/dancan.rb, line 26 def policy!(user, record) PolicyFinder.new(record).policy!.new(user, record) end
Public Instance Methods
dancan_admin()
click to toggle source
# File lib/dancan.rb, line 67 def dancan_admin current_admin end
policies()
click to toggle source
# File lib/dancan.rb, line 63 def policies @_dancan_policies ||= {} end
policy(record)
click to toggle source
# File lib/dancan.rb, line 59 def policy(record) policies[record] ||= Dancan.policy!(dancan_admin, record) end
restrict_access(record, permitted_roles=nil)
click to toggle source
# File lib/dancan.rb, line 44 def restrict_access(record, permitted_roles=nil) roles = permitted_roles policy = policy(record) unless roles.map().any? { |role| policy.public_send(role) } error = NotAuthorizedError.new("#{record} does not have not roles: #{roles.to_s}") error.roles, error.record, error.policy = roles.to_s, record, policy raise error end true end