Class: DcPermission
- Inherits:
-
Object
- Object
- DcPermission
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- app/models/dc_permission.rb
Overview
Schema information
Collection name: dc_permission : Collection permissions
_id BSON::ObjectId _id
created_at Time created_at
updated_at Time updated_at
table_name String Permission is valid for collection
is_default Mongoid::Boolean This is default permission for all collections in database
active Mongoid::Boolean Permission is active
dc_policy_rules Embedded:DcPolicyRule Defined policy rules
dc_permissions collection is used for saving documents which define permissions for accessing individual collections within DRG CMS system. Document which is marked as default is the top level document and defines general permissions valid for all collections. Other documents define permissions for accessing single collections or even embedded documents within collections.
Constant Summary collapse
- NO_ACCESS =
User has no access
0
- CAN_VIEW =
User can view documents
1
- CAN_CREATE =
User can create new documents
2
- CAN_EDIT =
User can edit his own documents
4
- CAN_EDIT_ALL =
User can edit all documents in collection
8
- CAN_DELETE =
User can delete his own documents
16
- CAN_DELETE_ALL =
User can delete all documents in collection
32
- CAN_ADMIN =
User can admin collection (same as can_delete_all, but can see documents which do not belong to current site)
64
- SUPERADMIN =
User is superadmin. Basicly same as admin.
128
Class Method Summary collapse
- .permissions_for(collection_name, result = {}) ⇒ Object
-
.permissions_for_table(collection_name) ⇒ Object
Will return permissions for collection.
-
.values_for_permissions ⇒ Object
Will return choices for permissions prepared for usega in select input field.
Instance Method Summary collapse
-
#cache_clear ⇒ Object
Clear cache if cache is configured.
Class Method Details
.permissions_for(collection_name, result = {}) ⇒ Object
118 119 120 121 122 123 124 125 126 |
# File 'app/models/dc_permission.rb', line 118 def self.(collection_name, result = {}) #:nodoc: = if collection_name == '*' self.find_by(is_default: true) else self.find_by(table_name: collection_name, active: true) end .dc_policy_rules.each {|perm| result[perm.dc_policy_role_id] = perm. } if result end |
.permissions_for_table(collection_name) ⇒ Object
Will return permissions for collection
101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'app/models/dc_permission.rb', line 101 def self.(collection_name) if collection_name.match(';') collection, , rest = collection_name.split(';') else collection, = collection_name, nil end result = ('*') result = ("#{collection[0,3]}*", result) result = (collection, result) # include permissions for embedded documents result = ("#{collection};#{}", result) if result end |
.values_for_permissions ⇒ Object
Will return choices for permissions prepared for usega in select input field. This will return english only comments so it is not used.
94 95 96 |
# File 'app/models/dc_permission.rb', line 94 def self. #:nodoc: [['NO_ACCESS',0],['CAN_VIEW',1],['CAN_CREATE',2],['CAN_EDIT',4],['CAN_EDIT_ALL',8],['CAN_DELETE',16],['CAN_DELETE_ALL',32],['CAN_ADMIN',64],['SUPERADMIN',128]] end |
Instance Method Details
#cache_clear ⇒ Object
Clear cache if cache is configured
86 87 88 |
# File 'app/models/dc_permission.rb', line 86 def cache_clear DrgCms.cache_clear(:dc_permission) end |