module Acl9 module ModelExtensions module Object ## # Role check. # # @return [Boolean] Returns true if +subject+ has a role +role_name+ on this object. # # @param [Symbol,String] role_name Role name # @param [Subject] subject Subject to add role for # @see Acl9::ModelExtensions::Subject#has_role? def accepts_role?(role_name, subject) subject.has_role? role_name, self end ## # Add role on the object to specified subject. # # @param [Symbol,String] role_name Role name # @param [Subject] subject Subject to add role for # @see Acl9::ModelExtensions::Subject#has_role! def accepts_role!(role_name, subject) subject.has_role! role_name, self end ## # Free specified subject of a role on this object. # # @param [Symbol,String] role_name Role name # @param [Subject] subject Subject to remove role from # @see Acl9::ModelExtensions::Subject#has_no_role! def accepts_no_role!(role_name, subject) subject.has_no_role! role_name, self end ## # Are there any roles for the specified +subject+ on this object? # # @param [Subject] subject Subject to query roles # @return [Boolean] Returns true if +subject+ has any roles on this object. # @see Acl9::ModelExtensions::Subject#has_roles_for? def accepts_roles_by?(subject) subject.has_roles_for? self end alias :accepts_role_by? :accepts_roles_by? ## # Which roles does +subject+ have on this object? # # @return [Array] Role instances, associated both with +subject+ and +object+ # @param [Subject] subject Subject to query roles # @see Acl9::ModelExtensions::Subject#roles_for def accepted_roles_by(subject) subject.roles_for self end end end end