Module: Authorization::ObjectRolesTable::UserExtensions::InstanceMethods

Defined in:
lib/authorization/publishare/object_roles_table.rb

Instance Method Summary collapse

Instance Method Details

#has_no_role(role_name, authorizable_obj = nil) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/authorization/publishare/object_roles_table.rb', line 46

def has_no_role( role_name, authorizable_obj = nil  )
  role = get_role( role_name, authorizable_obj )
  if role
    self.roles.delete( role )
    role.destroy if role.users.empty?
  end
end

#has_role(role_name, authorizable_obj = nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/authorization/publishare/object_roles_table.rb', line 32

def has_role( role_name, authorizable_obj = nil )
  role = get_role( role_name, authorizable_obj )
  if role.nil?
    if authorizable_obj.is_a? Class
      role = Role.create( :name => role_name, :authorizable_type => authorizable_obj.to_s )
    elsif authorizable_obj
      role = Role.create( :name => role_name, :authorizable => authorizable_obj )
    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

If roles aren’t explicitly defined in user class then check roles table

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
# File 'lib/authorization/publishare/object_roles_table.rb', line 23

def has_role?( role_name, authorizable_obj = nil )
  if authorizable_obj.nil?
    self.roles.find_by_name( role_name ) ? true : false    # If we ask a general role question, return true if any role is defined.
  else
    role = get_role( role_name, authorizable_obj )
    role ? self.roles.exists?( role.id ) : false
  end
end