Module: Ez::Permissions::API::Permissions
- Included in:
- Ez::Permissions::API
- Defined in:
- lib/ez/permissions/api/permissions.rb
Constant Summary collapse
- PermissionNotFound =
Class.new(StandardError)
Instance Method Summary collapse
- #get_permission!(action, resource) ⇒ Object
- #grant_permission(role_name, action, resource) ⇒ Object
- #revoke_permission(role_name, action, resource) ⇒ Object
Instance Method Details
#get_permission!(action, resource) ⇒ Object
9 10 11 12 13 |
# File 'lib/ez/permissions/api/permissions.rb', line 9 def (action, resource) Ez::Permissions::Permission.find_by!(resource: resource, action: action) rescue ActiveRecord::RecordNotFound raise PermissionNotFound, "Permission [#{action} -> #{resource}] not found" end |
#grant_permission(role_name, action, resource) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ez/permissions/api/permissions.rb', line 15 def (role_name, action, resource) role = Ez::Permissions::API.get_role!(role_name) if action == :all (role, resource) else = (action, resource) (role, ) end end |
#revoke_permission(role_name, action, resource) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/ez/permissions/api/permissions.rb', line 26 def (role_name, action, resource) role = Ez::Permissions::API.get_role!(role_name) = (action, resource) Ez::Permissions::PermissionRole.find_by( role: role, permission: )&.delete end |