Module: Kibali::SubjectExtensions

Defined in:
lib/kibali/subject_extensions.rb

Instance Method Summary collapse

Instance Method Details

#get_role(role_name = nil) ⇒ Object


get_role – returns a role obj for subject; else nil EXCEPTION: EmptyRolesException if role_objects collection is empty


Raises:



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/kibali/subject_extensions.rb', line 35

def get_role( role_name=nil )

  raise Kibali::EmptyRoles  if role_objects.empty?

  if role_name.nil?
     role_objects.first
  else
     role_objects.where( :name => role_name.to_s ).first
  end

end

#has_role!(role_name) ⇒ Object


has_role! – forces subject to have the given role




17
18
19
20
21
22
# File 'lib/kibali/subject_extensions.rb', line 17

def has_role!(role_name)
  role = _auth_role_class.where( :name => role_name.to_s ).   # acts as the find part
         first_or_create( :name => role_name.to_s )           # acts as the create part
  role_objects << role unless self.role_objects.member?(role)
  role
end

#has_role?(role_name) ⇒ Boolean


has_role? – returns true if subject has the given role


Returns:

  • (Boolean)


10
11
12
# File 'lib/kibali/subject_extensions.rb', line 10

def has_role?(role_name)
  !get_role( role_name ).nil?
end

#remove_role!(role_name) ⇒ Object


remove_role! – foreces subject to NOT have the given role




27
28
29
# File 'lib/kibali/subject_extensions.rb', line 27

def remove_role!(role_name)
  role_objects.delete( get_role( role_name ) )
end