glitchier-soc/app/policies/account_policy.rb

68 lines
1.4 KiB
Ruby
Raw Normal View History

# 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