Module: Kibali::SubjectExtensions
- Defined in:
- lib/kibali/subject_extensions.rb
Instance Method Summary collapse
-
#get_role(role_name = nil) ⇒ Object
—————————————————————————— get_role – returns a role obj for subject; else nil EXCEPTION: EmptyRolesException if role_objects collection is empty ——————————————————————————.
-
#has_role!(role_name) ⇒ Object
—————————————————————————— has_role! – forces subject to have the given role ——————————————————————————.
-
#has_role?(role_name) ⇒ Boolean
—————————————————————————— has_role? – returns true if subject has the given role ——————————————————————————.
-
#remove_role!(role_name) ⇒ Object
—————————————————————————— remove_role! – foreces subject to NOT have the given role ——————————————————————————.
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
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
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 |