summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-23 12:53:03 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-23 12:53:03 +0000
commit550f2337a75abc7cdf93c3c86eaa803c52a2b1eb (patch)
tree208070fea2a3c729efb5491cd0cc031f2832c704
parent08e4be01c06243dce77602cb19e7a32aeb7cbee8 (diff)
parentd12c1e90f8f3e9454d2a52f40854dadcdb2d822b (diff)
downloadgitlab-ce-550f2337a75abc7cdf93c3c86eaa803c52a2b1eb.tar.gz
Merge branch 'remove_secondary_user_email' into 'master'
Remove secondary user email Fixes #1286
-rw-r--r--app/controllers/admin/users_controller.rb10
-rw-r--r--app/views/admin/users/show.html.haml2
-rw-r--r--config/routes.rb1
-rw-r--r--features/admin/users.feature8
-rw-r--r--features/steps/admin/users.rb19
5 files changed, 40 insertions, 0 deletions
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
index 5ecdfbd807e..f0040bf5e87 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 a255c64fc27..3c30ccd78b3 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 779cbad709c..5b854ed20b9 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 ce31aafd290..d8c1288e5f0 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 659008dd875..253c4609e82 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