module RoleCall::Roles::Permissions
Public Instance Methods
ensure_valid_permissions(permission_grants)
click to toggle source
# File lib/role_call/roles/permissions.rb, line 41 def ensure_valid_permissions(permission_grants) raise ArgumentError, "a permission is required" if permission_grants.empty? invalid_permissions = permission_grants.reject { |permission| permission.respond_to?(:granted_to) } raise ArgumentError, "invalid permissions: #{invalid_permissions.join(", ")}" if invalid_permissions.present? end
grant(*permission_grants)
click to toggle source
# File lib/role_call/roles/permissions.rb, line 26 def grant(*permission_grants) permission_grants = permission_grants.flatten.compact ensure_valid_permissions(permission_grants) permission_grants.each do |permission| permissions << permission track_permission(permission) end end
inherited(base)
click to toggle source
Calls superclass method
# File lib/role_call/roles/permissions.rb, line 19 def inherited(base) base.permissions = permissions.dup super end
track_permission(permission)
click to toggle source
# File lib/role_call/roles/permissions.rb, line 37 def track_permission(permission) permission.granted_to(self) end
unpermitted?()
click to toggle source
# File lib/role_call/roles/permissions.rb, line 15 def unpermitted? permissions.blank? end