module Ez::Permissions::API::Permissions
Constants
- PermissionNotFound
Public Instance Methods
get_permission!(action, resource)
click to toggle source
# File lib/ez/permissions/api/permissions.rb, line 9 def get_permission!(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)
click to toggle source
# File lib/ez/permissions/api/permissions.rb, line 15 def grant_permission(role_name, action, resource) role = Ez::Permissions::API.get_role!(role_name) if action == :all grant_all_permissions(role, resource) else permission = get_permission!(action, resource) grant_single_permission(role, permission) end end
revoke_permission(role_name, action, resource)
click to toggle source
# File lib/ez/permissions/api/permissions.rb, line 26 def revoke_permission(role_name, action, resource) role = Ez::Permissions::API.get_role!(role_name) permission = get_permission!(action, resource) Ez::Permissions::PermissionRole.find_by( role: role, permission: permission )&.delete end
Private Instance Methods
grant_all_permissions(role, resource)
click to toggle source
# File lib/ez/permissions/api/permissions.rb, line 45 def grant_all_permissions(role, resource) Ez::Permissions::DSL.resource(resource).actions.each do |action| permission = get_permission!(action, resource) grant_single_permission(role, permission) end end
grant_single_permission(role, permission)
click to toggle source
# File lib/ez/permissions/api/permissions.rb, line 38 def grant_single_permission(role, permission) Ez::Permissions::PermissionRole.find_or_create_by!( role: role, permission: permission ) end