diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 5ecdfbd807..f0040bf5e8 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -100,6 +100,16 @@ class Admin::UsersController < Admin::ApplicationController end end + def remove_email + email = user.emails.find(params[:email_id]) + email.destroy + + respond_to do |format| + format.html { redirect_to :back, notice: "Successfully removed email." } + format.js { render nothing: true } + end + end + protected def user diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml index a255c64fc2..3c30ccd78b 100644 --- a/app/views/admin/users/show.html.haml +++ b/app/views/admin/users/show.html.haml @@ -44,6 +44,8 @@ %li %span.light Secondary email: %strong= email.email + = link_to remove_email_admin_user_path(@user, email), data: { confirm: "Are you sure you want to remove #{email.email}?" }, method: :delete, class: "btn-tiny btn btn-remove pull-right", title: 'Remove secondary email', id: "remove_email_#{email.id}" do + %i.icon-remove %li %span.light Can create groups: diff --git a/config/routes.rb b/config/routes.rb index 779cbad709..5b854ed20b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -68,6 +68,7 @@ Gitlab::Application.routes.draw do put :team_update put :block put :unblock + delete 'remove/:email_id', action: 'remove_email', as: 'remove_email' end end diff --git a/features/admin/users.feature b/features/admin/users.feature index ce31aafd29..d8c1288e5f 100644 --- a/features/admin/users.feature +++ b/features/admin/users.feature @@ -21,3 +21,11 @@ Feature: Admin Users And click edit on my user When I submit modified user Then I see user attributes changed + +@javascript + Scenario: Remove users secondary email + Given I visit admin users page + And I view the user with secondary email + And I see the secondary email + When I click remove secondary email + Then I should not see secondary email anymore diff --git a/features/steps/admin/users.rb b/features/steps/admin/users.rb index 659008dd87..253c4609e8 100644 --- a/features/steps/admin/users.rb +++ b/features/steps/admin/users.rb @@ -44,4 +44,23 @@ class AdminUsers < Spinach::FeatureSteps step 'click edit on my user' do find("#edit_user_#{current_user.id}").click end + + step 'I view the user with secondary email' do + @user_with_secondary_email = User.last + @user_with_secondary_email.emails.new(email: "secondary@example.com") + @user_with_secondary_email.save + visit "/admin/users/#{@user_with_secondary_email.username}" + end + + step 'I see the secondary email' do + page.should have_content "Secondary email: #{@user_with_secondary_email.emails.last.email}" + end + + step 'I click remove secondary email' do + find("#remove_email_#{@user_with_secondary_email.emails.last.id}").click + end + + step 'I should not see secondary email anymore' do + page.should_not have_content "Secondary email:" + end end