Class: Alberich::BasePermissionObject
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Alberich::BasePermissionObject
show all
- Includes:
- PermissionedObject
- Defined in:
- app/models/alberich/base_permission_object.rb
Constant Summary
collapse
- GENERAL_PERMISSION_SCOPE =
"general_permission_scope"
Class Method Summary
collapse
Instance Method Summary
collapse
#assign_owner_roles, #derived_subtree, #has_privilege, included, #perm_ancestors, #update_derived_permissions_for_ancestors
Class Method Details
.additional_privilege_target_types ⇒ Object
25
26
27
|
# File 'app/models/alberich/base_permission_object.rb', line 25
def self.additional_privilege_target_types
Alberich.permissioned_object_classes.collect {|x| Kernel.const_get(x)}
end
|
.general_permission_scope ⇒ Object
11
12
13
14
15
16
17
|
# File 'app/models/alberich/base_permission_object.rb', line 11
def self.general_permission_scope
base_permission = self.find_by_name(GENERAL_PERMISSION_SCOPE)
unless base_permission
base_permission = self.create!(:name => GENERAL_PERMISSION_SCOPE)
end
base_permission
end
|
.global_admin_permission_count ⇒ Object
29
30
31
32
33
|
# File 'app/models/alberich/base_permission_object.rb', line 29
def self.global_admin_permission_count
self.general_permission_scope.permissions.includes(:role => :privileges).
where("alberich_privileges.target_type" => "Alberich::BasePermissionObject",
"alberich_privileges.action" => Privilege::PERM_SET).size
end
|
.is_global_admin_perm(permission) ⇒ Object
35
36
37
38
39
40
|
# File 'app/models/alberich/base_permission_object.rb', line 35
def self.is_global_admin_perm(permission)
permission.role.privileges.where("alberich_privileges.target_type" =>
"Alberich::BasePermissionObject",
"alberich_privileges.action" =>
Privilege::PERM_SET).size > 0
end
|
Instance Method Details
#permissions_for_type(obj_type) ⇒ Object
19
20
21
22
23
|
# File 'app/models/alberich/base_permission_object.rb', line 19
def permissions_for_type(obj_type)
role_ids = Role.where(:scope => "BasePermissionObject").
select { |role| role.privilege_target_match(obj_type)}.collect {|r| r.id}
permissions.where("role_id in (:role_ids)", {:role_ids => role_ids})
end
|