module PermissionsSubject
Adds the ability for models to be managed through permissions.
Public Instance Methods
actors()
click to toggle source
# File lib/buweb/concerns/permissions_subject.rb, line 45 def actors array = [] self.permissions.order_by(:actor_type.asc).each do |p| obj = p.actor_type.constantize.find(p.actor_id) array << obj unless obj.nil? end array end
new_permissions_for(object, ability = nil)
click to toggle source
# File lib/buweb/concerns/permissions_subject.rb, line 84 def new_permissions_for(object, ability = nil) self.permissions.new( actor_id: object.id, actor_type: object.class.to_s, ability: ability ) end
permission?(actor)
click to toggle source
# File lib/buweb/concerns/permissions_subject.rb, line 54 def permission?(actor) actors.include?(actor) end
Also aliased as: has_permission?
permission_to?(ability, actor)
click to toggle source
# File lib/buweb/concerns/permissions_subject.rb, line 59 def permission_to?(ability, actor) self.permissions.by_actor(actor).where(ability: ability).present? end
Also aliased as: has_permission_to?
remove_permissions_for(object, ability=nil)
click to toggle source
find out if the destroy action works with the current user listed
# File lib/buweb/concerns/permissions_subject.rb, line 93 def remove_permissions_for(object, ability=nil) self.permissions.find_by(actor_id: object.id, ability: ability).destroy end