Module: Authorization::ObjectRolesTable::UserExtensions::InstanceMethods
- Defined in:
- lib/publishare/object_roles_table.rb
Instance Method Summary collapse
- #has_no_role(role_name, authorizable_obj = nil) ⇒ Object
- #has_role(role_name, authorizable_obj = nil) ⇒ Object
- #has_role?(role_name, authorizable_obj = nil) ⇒ Boolean
Instance Method Details
#has_no_role(role_name, authorizable_obj = nil) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/publishare/object_roles_table.rb', line 48 def has_no_role( role_name, = nil ) role = get_role( role_name, ) if role self.roles.delete( role ) role.destroy if role.users.empty? end end |
#has_role(role_name, authorizable_obj = nil) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/publishare/object_roles_table.rb', line 34 def has_role( role_name, = nil ) role = get_role( role_name, ) if role.nil? if .is_a? Class role = Role.create( :name => role_name, :authorizable_type => .to_s ) elsif role = Role.create( :name => role_name, :authorizable => ) else role = Role.create( :name => role_name ) end end self.roles << role if role and not self.roles.exists?( role.id ) end |
#has_role?(role_name, authorizable_obj = nil) ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/publishare/object_roles_table.rb', line 21 def has_role?( role_name, = nil ) if .nil? case role_name when String then self.roles.detect { |role| role.name == role_name } ? true : false when Array then role_name.inject(false) { |memo,role| memo ? memo : has_role?(role) } else false end else role = get_role( role_name, ) role ? self.roles.exists?( role.id ) : false end end |