diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-12-03 13:32:16 +0100 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-12-03 13:32:16 +0100 |
commit | 3b70d5b207e7f9fbd20584d0a42d06609b61e751 (patch) | |
tree | 925234438a2a7fb0508cdfa551dcfe1068a0de39 /app/controllers/admin/impersonation_controller.rb | |
parent | a8e463c8aca571ede3691c98f7f3990d3d880d0b (diff) | |
parent | 6689224a90f3d2500be5d927ea1ed9656fc7b1b6 (diff) | |
download | gitlab-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.rb | 16 |
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 |