Class: Permission
- Inherits:
-
Sequel::Model
- Object
- Sequel::Model
- Permission
show all
- Includes:
- ASModel
- Defined in:
- backend/app/model/permission.rb
Class Method Summary
(collapse)
Methods included from ASModel
all_models, included, update_publish_flag, update_suppressed_flag
Methods included from JSONModel
JSONModel, #JSONModel, add_error_handler, all, allow_unmapped_enum_value, backend_url, client_mode?, custom_validations, destroy_model, enum_default_value, enum_values, handle_error, init, load_schema, #models, models, parse_jsonmodel_ref, parse_reference, repository, repository_for, schema_src, set_repository, strict_mode, strict_mode?, with_repository
Class Method Details
+ (Object) define(code, description, opts = {})
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'backend/app/model/permission.rb', line 20
def self.define(code, description, opts = {})
if opts[:implied_by]
@derived_permissions << opts.merge(:permission_code => code,
:description => description)
return
end
opts[:level] ||= "repository"
opts[:system] = (opts[:system] ? 1 : 0)
permission = (Permission[:permission_code => code] or
Permission.create(opts.merge(:permission_code => code,
:description => description)))
admins = Group.any_repo[:group_code => Group.ADMIN_GROUP_CODE]
admins.grant(permission.permission_code)
end
|
+ (Boolean) derived?(code)
9
10
11
|
# File 'backend/app/model/permission.rb', line 9
def self.derived?(code)
@derived_permissions.any?{|p| p[:permission_code].casecmp(code) == 0}
end
|
+ (Object) derived_permissions_for(code)
14
15
16
17
|
# File 'backend/app/model/permission.rb', line 14
def self.derived_permissions_for(code)
@derived_permissions.select {|p| p[:implied_by].casecmp(code) == 0}.
map {|p| p[:permission_code]}
end
|