Class: Ez::Permissions::Roles::PermissionsCell
Constant Summary
collapse
- COMMON_ACTIONS_ORDER =
Ez::Permissions.config.ui_actions_ordering || %w[create read update delete].freeze
ApplicationCell::BASE_ROUTES, ApplicationCell::CSS_SCOPE, ApplicationCell::I18N_SCOPE
Instance Method Summary
collapse
#css_for, #custom_css_map, #div_for, form, #path_for, #t
Instance Method Details
#actions_names ⇒ Object
19
20
21
22
23
24
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 19
def actions_names
@actions_names ||= permissions_actions
.map(&:action)
.uniq
.sort_by { |a| (COMMON_ACTIONS_ORDER.index(a).to_s || a) }
end
|
#all_granted?(resource_name = nil) ⇒ Boolean
73
74
75
76
77
78
79
80
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 73
def all_granted?(resource_name = nil)
if resource_name
role_permissions.select { |p| p.resource == resource_name }.size ==
permissions_actions.select { |p| p.resource == resource_name }.size
else
role_permissions.size == permissions_actions.size
end
end
|
82
83
84
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 82
def form_url
"#{Ez::Permissions.config.ui_base_routes}/roles/#{model.id}/permissions"
end
|
#granted_permission?(permission_id) ⇒ Boolean
50
51
52
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 50
def granted_permission?(permission_id)
role_permission_ids.include?(permission_id)
end
|
#group_names ⇒ Object
15
16
17
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 15
def group_names
@group_names ||= groups.keys.compact.map(&:to_s).sort.map(&:to_sym)
end
|
#groups ⇒ Object
11
12
13
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 11
def groups
@groups ||= Ez::Permissions::DSL.resources.group_by(&:group)
end
|
#permission_checkbox(resource_name, action_name) ⇒ Object
54
55
56
57
58
59
60
61
62
63
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 54
def permission_checkbox(resource_name, action_name)
permission_id = permission_id(resource_name, action_name)
return unless permission_id
check_box_tag 'permissions[]',
permission_id,
granted_permission?(permission_id),
id: "permission-checkbox-#{resource_name}-#{action_name}"
end
|
#permission_id(resource_name, action_name) ⇒ Object
46
47
48
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 46
def permission_id(resource_name, action_name)
permissions_actions.find { |p| p.resource == resource_name && p.action == action_name }&.id
end
|
#permissions_actions ⇒ Object
34
35
36
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 34
def permissions_actions
@permissions_actions ||= Ez::Permissions::Permission.all.to_a
end
|
#permissions_label(resource_name, action_name) ⇒ Object
65
66
67
68
69
70
71
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 65
def permissions_label(resource_name, action_name)
permission_id = permission_id(resource_name, action_name)
return unless permission_id
label_tag "permission-checkbox-#{resource_name}-#{action_name}", action_name.humanize
end
|
#resource_by(name) ⇒ Object
30
31
32
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 30
def resource_by(name)
Ez::Permissions::DSL.resources.find { |r| r.name == name.to_sym }
end
|
#resources_names ⇒ Object
26
27
28
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 26
def resources_names
@resources_names ||= permissions_actions.map(&:resource).uniq.sort
end
|
#role_permission_ids ⇒ Object
42
43
44
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 42
def role_permission_ids
@role_permission_ids ||= role_permissions.map(&:id)
end
|
#role_permissions ⇒ Object
38
39
40
|
# File 'app/cells/ez/permissions/roles/permissions_cell.rb', line 38
def role_permissions
@role_permissions ||= model.permissions.to_a
end
|