class WorkPolicy < UserCreationPolicy
  def show_admin_options?
    super || edit_tags? || set_spam?
  end

  # Allow admins to edit work tags and languages.
  # Include support admins due to AO3-4932.
  def update_tags?
    user_has_roles?(%w[superadmin policy_and_abuse support])
  end

  alias edit_tags? update_tags?

  # Support admins need to be able to delete duplicate works.
  def destroy?
    super || user_has_roles?(%w[support])
  end

  def set_spam?
    user_has_roles?(%w[superadmin policy_and_abuse])
  end

  def remove_pseud?
    user_has_roles?(%w[superadmin support policy_and_abuse])
  end

  alias confirm_remove_pseud? remove_pseud?
end
