class UserPolicy < BasePolicy include Gitlab::CurrentSettings def rules can! :read_user if @user || !restricted_public_level? if @user if @user.admin? || @subject == @user can! :destroy_user end cannot! :destroy_user if @subject.ghost? end end def restricted_public_level? current_application_settings.restricted_visibility_levels.include?(Gitlab::VisibilityLevel::PUBLIC) end end