summaryrefslogtreecommitdiff
path: root/lib/gitlab/auth/current_user_mode.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/auth/current_user_mode.rb')
-rw-r--r--lib/gitlab/auth/current_user_mode.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/gitlab/auth/current_user_mode.rb b/lib/gitlab/auth/current_user_mode.rb
index 0f327a39f61..a6d706c2a49 100644
--- a/lib/gitlab/auth/current_user_mode.rb
+++ b/lib/gitlab/auth/current_user_mode.rb
@@ -77,7 +77,7 @@ module Gitlab
return false unless user
Gitlab::SafeRequestStore.fetch(admin_mode_rs_key) do
- user.admin? && session_with_admin_mode?
+ user.admin? && (privileged_runtime? || session_with_admin_mode?)
end
end
@@ -154,6 +154,11 @@ module Gitlab
Gitlab::SafeRequestStore.delete(admin_mode_rs_key)
Gitlab::SafeRequestStore.delete(admin_mode_requested_rs_key)
end
+
+ # Runtimes which imply shell access get admin mode automatically, see Gitlab::Runtime
+ def privileged_runtime?
+ Gitlab::Runtime.rake? || Gitlab::Runtime.rails_runner? || Gitlab::Runtime.console?
+ end
end
end
end