Class: CanTango::Permits::RolePermit
- Inherits:
-
CanTango::Permit
- Object
- CanTango::Permit
- CanTango::Permits::RolePermit
- Extended by:
- Helpers::RoleMethods
- Includes:
- Helpers::RoleMethods
- Defined in:
- lib/cantango/permits/role_permit.rb,
lib/cantango/permits/role_permit/finder.rb,
lib/cantango/permits/role_permit/builder.rb
Defined Under Namespace
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(ability) ⇒ RolePermit
constructor
creates the permit.
-
#permit? ⇒ Boolean
In a specific Role based Permit you can use def permit? user, options = {} …
- #permit_name ⇒ Object (also: #role)
- #valid_for?(subject) ⇒ Boolean
Methods included from Helpers::RoleMethods
config, has_role_group_meth, has_role_meth, role_groups_list_meth, roles_list_meth
Constructor Details
#initialize(ability) ⇒ RolePermit
creates the permit
27 28 29 |
# File 'lib/cantango/permits/role_permit.rb', line 27 def initialize ability super end |
Class Method Details
.hash_key ⇒ Object
52 53 54 |
# File 'lib/cantango/permits/role_permit.rb', line 52 def self.hash_key roles_list_meth end |
.inherited(base_clazz) ⇒ Object
7 8 9 |
# File 'lib/cantango/permits/role_permit.rb', line 7 def self.inherited(base_clazz) CanTango.config.permits.register_permit_class role_name(base_clazz), base_clazz, type, account_name(base_clazz) end |
.role_name(clazz) ⇒ Object
15 16 17 |
# File 'lib/cantango/permits/role_permit.rb', line 15 def self.role_name clazz clazz.name.demodulize.gsub(/(.*)(RolePermit)/, '\1').underscore.to_sym end |
.type ⇒ Object
11 12 13 |
# File 'lib/cantango/permits/role_permit.rb', line 11 def self.type :role end |
Instance Method Details
#permit? ⇒ Boolean
In a specific Role based Permit you can use
def permit? user, options = {}
... permission logic follows
This will call the Permit::Base#permit? instance method (the method below) It will only return true if the user matches the role of the Permit class and the
If these confitions are not met, it will return false and thus the outer permit will not run the permission logic to follow
Normally super for #permit? should not be called except for this case, or if subclassing another Permit than Permit::Base
44 45 46 |
# File 'lib/cantango/permits/role_permit.rb', line 44 def permit? super end |
#permit_name ⇒ Object Also known as: role
19 20 21 |
# File 'lib/cantango/permits/role_permit.rb', line 19 def permit_name self.class.role_name self.class end |
#valid_for?(subject) ⇒ Boolean
48 49 50 |
# File 'lib/cantango/permits/role_permit.rb', line 48 def valid_for? subject in_role? subject end |