Module: AccessChecker::SubjectExtensions
- Defined in:
- lib/access_checker/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
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/access_checker/subject_extensions.rb', line 32 def get_role( role_name=nil ) raise AccessChecker::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
14 15 16 17 18 19 |
# File 'lib/access_checker/subject_extensions.rb', line 14 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
7 8 9 |
# File 'lib/access_checker/subject_extensions.rb', line 7 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
24 25 26 |
# File 'lib/access_checker/subject_extensions.rb', line 24 def remove_role!(role_name) role_objects.delete( get_role( role_name ) ) end |