Commit b88314f4 authored by http://jneen.net/'s avatar http://jneen.net/

consolidate the error handling for #impersonate

parent 8f057a51
...@@ -29,15 +29,7 @@ class Admin::UsersController < Admin::ApplicationController ...@@ -29,15 +29,7 @@ class Admin::UsersController < Admin::ApplicationController
end end
def impersonate def impersonate
if user.blocked? if !can?(user, :log_in)
flash[:alert] = "You cannot impersonate a blocked user"
redirect_to admin_user_path(user)
elsif user.internal?
flash[:alert] = "You cannot impersonate an internal user"
redirect_to admin_user_path(user)
else
session[:impersonator_id] = current_user.id session[:impersonator_id] = current_user.id
warden.set_user(user, scope: :user) warden.set_user(user, scope: :user)
...@@ -47,6 +39,17 @@ class Admin::UsersController < Admin::ApplicationController ...@@ -47,6 +39,17 @@ class Admin::UsersController < Admin::ApplicationController
flash[:alert] = "You are now impersonating #{user.username}" flash[:alert] = "You are now impersonating #{user.username}"
redirect_to root_path redirect_to root_path
else
flash[:alert] =
if user.blocked?
"You cannot impersonate a blocked user"
elsif user.internal?
"You cannot impersonate an internal user"
else
"You cannot impersonate a user who cannot log in"
end
redirect_to admin_user_path(user)
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment