You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
450 B
25 lines
450 B
# frozen_string_literal: true |
|
|
|
class UserRolePolicy < ApplicationPolicy |
|
def index? |
|
role.can?(:manage_roles) |
|
end |
|
|
|
def create? |
|
role.can?(:manage_roles) |
|
end |
|
|
|
def update? |
|
role.can?(:manage_roles) && (role.overrides?(record) || self_editing?) |
|
end |
|
|
|
def destroy? |
|
!record.everyone? && role.can?(:manage_roles) && role.overrides?(record) && !self_editing? |
|
end |
|
|
|
private |
|
|
|
def self_editing? |
|
role.id == record.id |
|
end |
|
end
|
|
|