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

Defined in:
lib/publishare/object_roles_table.rb

Instance Method Summary collapse

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, 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



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, 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

Returns:

  • (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, authorizable_obj = nil )
  if authorizable_obj.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, authorizable_obj )
    role ? self.roles.exists?( role.id ) : false
  end
end