diff options
Diffstat (limited to 'app/policies/base_policy.rb')
-rw-r--r-- | app/policies/base_policy.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/app/policies/base_policy.rb b/app/policies/base_policy.rb index 78379516062..18c23cbd13a 100644 --- a/app/policies/base_policy.rb +++ b/app/policies/base_policy.rb @@ -5,12 +5,22 @@ require_dependency 'declarative_policy' class BasePolicy < DeclarativePolicy::Base desc "User is an instance admin" with_options scope: :user, score: 0 - condition(:admin) { @user&.admin? } + condition(:admin) do + if Feature.enabled?(:user_mode_in_session) + Gitlab::Auth::CurrentUserMode.new(@user).admin_mode? + else + @user&.admin? + end + end desc "User is blocked" with_options scope: :user, score: 0 condition(:blocked) { @user&.blocked? } + desc "User is deactivated" + with_options scope: :user, score: 0 + condition(:deactivated) { @user&.deactivated? } + desc "User has access to all private groups & projects" with_options scope: :user, score: 0 condition(:full_private_access) { @user&.full_private_access? } |