Skip to content
Snippets Groups Projects
Commit eb9528b8 authored by Pavel Forkert's avatar Pavel Forkert
Browse files

Move login button to user page, switched to POST method

parent 83347954
No related branches found
No related tags found
1 merge request!1423Add option to admin area to sign in as a specific user
Loading
@@ -6,6 +6,8 @@
Loading
@@ -6,6 +6,8 @@
%span.cred (Admin) %span.cred (Admin)
   
.pull-right .pull-right
- unless @user == current_user
= link_to 'Log in as this user', login_as_admin_user_path(@user), method: :post, class: "btn btn-grouped btn-info"
= link_to edit_admin_user_path(@user), class: "btn btn-grouped" do = link_to edit_admin_user_path(@user), class: "btn btn-grouped" do
%i.fa.fa-pencil-square-o %i.fa.fa-pencil-square-o
Edit Edit
Loading
Loading
Loading
@@ -90,7 +90,6 @@
Loading
@@ -90,7 +90,6 @@
   
= link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: "btn btn-xs" = link_to 'Edit', edit_admin_user_path(user), id: "edit_#{dom_id(user)}", class: "btn btn-xs"
- unless user == current_user - unless user == current_user
= link_to 'Log in', login_as_admin_user_path(user), method: :put, class: "btn btn-xs btn-primary"
- if user.blocked? - if user.blocked?
= link_to 'Unblock', unblock_admin_user_path(user), method: :put, class: "btn btn-xs btn-success" = link_to 'Unblock', unblock_admin_user_path(user), method: :put, class: "btn btn-xs btn-success"
- else - else
Loading
Loading
Loading
@@ -262,7 +262,7 @@ Gitlab::Application.routes.draw do
Loading
@@ -262,7 +262,7 @@ Gitlab::Application.routes.draw do
put :unblock put :unblock
put :unlock put :unlock
put :confirm put :confirm
put :login_as post :login_as
patch :disable_two_factor patch :disable_two_factor
delete 'remove/:email_id', action: 'remove_email', as: 'remove_email' delete 'remove/:email_id', action: 'remove_email', as: 'remove_email'
end end
Loading
Loading
Loading
@@ -7,17 +7,17 @@ describe Admin::UsersController do
Loading
@@ -7,17 +7,17 @@ describe Admin::UsersController do
sign_in(admin) sign_in(admin)
end end
   
describe 'PUT login_as' do describe 'POST login_as' do
let(:user) { create(:user) } let(:user) { create(:user) }
   
it 'logs admin as another user' do it 'logs admin as another user' do
expect(warden.authenticate(scope: :user)).not_to eq(user) expect(warden.authenticate(scope: :user)).not_to eq(user)
put :login_as, id: user.username post :login_as, id: user.username
expect(warden.authenticate(scope: :user)).to eq(user) expect(warden.authenticate(scope: :user)).to eq(user)
end end
   
it 'redirects user to homepage' do it 'redirects user to homepage' do
put :login_as, id: user.username post :login_as, id: user.username
expect(response).to redirect_to(root_path) expect(response).to redirect_to(root_path)
end end
end end
Loading
Loading
Loading
@@ -111,6 +111,27 @@ describe "Admin::Users", feature: true do
Loading
@@ -111,6 +111,27 @@ describe "Admin::Users", feature: true do
expect(page).to have_content(@user.name) expect(page).to have_content(@user.name)
end end
   
describe 'Login as another user' do
it 'should show login button for other users' do
another_user = create(:user)
visit admin_user_path(another_user)
click_link 'Log in as this user'
expect(page).to have_content("Logged in as #{another_user.username}")
page.within '.sidebar-user .username' do
expect(page).to have_content(another_user.username)
end
end
it 'should not show login button for admin itself' do
visit admin_user_path(@user)
expect(page).not_to have_content('Log in as this user')
end
end
describe 'Two-factor Authentication status' do describe 'Two-factor Authentication status' do
it 'shows when enabled' do it 'shows when enabled' do
@user.update_attribute(:two_factor_enabled, true) @user.update_attribute(:two_factor_enabled, true)
Loading
@@ -166,20 +187,4 @@ describe "Admin::Users", feature: true do
Loading
@@ -166,20 +187,4 @@ describe "Admin::Users", feature: true do
end end
end end
end end
it 'should be able to log in as another user' do
another_user = create(:user)
visit admin_users_path
page.within ".user-#{another_user.id}" do
click_link 'Log in'
end
expect(page).to have_content("Logged in as #{another_user.username}")
page.within '.sidebar-user .username' do
expect(page).to have_content(another_user.username)
end
end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment