1
0
mirror of https://github.com/mastodon/mastodon synced 2024-12-23 02:58:16 +09:00
mastodon/app/policies/account_policy.rb
Eugen Rochko 44b2ee3485
Add customizable user roles (#18641)
* Add customizable user roles

* Various fixes and improvements

* Add migration for old settings and fix tootctl role management
2022-07-05 02:41:40 +02:00

68 lines
1.4 KiB
Ruby

# frozen_string_literal: true
class AccountPolicy < ApplicationPolicy
def index?
role.can?(:manage_users)
end
def show?
role.can?(:manage_users)
end
def warn?
role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def suspend?
role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role) && !record.instance_actor?
end
def destroy?
record.suspended_temporarily? && role.can?(:delete_user_data)
end
def unsuspend?
role.can?(:manage_users) && record.suspension_origin_local?
end
def sensitive?
role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def unsensitive?
role.can?(:manage_users)
end
def silence?
role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def unsilence?
role.can?(:manage_users)
end
def redownload?
role.can?(:manage_federation)
end
def remove_avatar?
role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def remove_header?
role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def memorialize?
role.can?(:delete_user_data) && role.overrides?(record.user_role) && !record.instance_actor?
end
def unblock_email?
role.can?(:manage_users)
end
def review?
role.can?(:manage_taxonomies)
end
end