summaryrefslogtreecommitdiff
path: root/app/controllers/admin/impersonation_controller.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-12-03 13:32:16 +0100
committerDouwe Maan <douwe@gitlab.com>2015-12-03 13:32:16 +0100
commit3b70d5b207e7f9fbd20584d0a42d06609b61e751 (patch)
tree925234438a2a7fb0508cdfa551dcfe1068a0de39 /app/controllers/admin/impersonation_controller.rb
parenta8e463c8aca571ede3691c98f7f3990d3d880d0b (diff)
parent6689224a90f3d2500be5d927ea1ed9656fc7b1b6 (diff)
downloadgitlab-ce-fork-event.tar.gz
Merge branch 'master' into fork-eventfork-event
Diffstat (limited to 'app/controllers/admin/impersonation_controller.rb')
-rw-r--r--app/controllers/admin/impersonation_controller.rb16
1 files changed, 11 insertions, 5 deletions
diff --git a/app/controllers/admin/impersonation_controller.rb b/app/controllers/admin/impersonation_controller.rb
index 0382402afa6..bf98af78615 100644
--- a/app/controllers/admin/impersonation_controller.rb
+++ b/app/controllers/admin/impersonation_controller.rb
@@ -5,14 +5,20 @@ class Admin::ImpersonationController < Admin::ApplicationController
before_action :authorize_impersonator!
def create
- session[:impersonator_id] = current_user.username
- session[:impersonator_return_to] = request.env['HTTP_REFERER']
+ if @user.blocked?
+ flash[:alert] = "You cannot impersonate a blocked user"
- warden.set_user(user, scope: 'user')
+ redirect_to admin_user_path(@user)
+ else
+ session[:impersonator_id] = current_user.username
+ session[:impersonator_return_to] = admin_user_path(@user)
+
+ warden.set_user(user, scope: 'user')
- flash[:alert] = "You are impersonating #{user.username}."
+ flash[:alert] = "You are impersonating #{user.username}."
- redirect_to root_path
+ redirect_to root_path
+ end
end
def destroy