summaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2013-10-28 12:47:46 +0100
committerAzul <azul@leap.se>2013-10-30 20:17:43 +0100
commitdd88c7f84cb3c497c6327c364b3c08993c51a08f (patch)
tree84d767412c6a5af49310850ff59704c9fa15dcf9 /users
parent7aaedeaf6fdd2d84ebab7bde2f6a6bdcf8d930b8 (diff)
notify user their account was successfully deleted (refs #4216)
Also fixes a cornercase when admins deleted their own account. So far they would be redirected to the users list - which then refused access. Now they'll be redirected to the home landing page as well.
Diffstat (limited to 'users')
-rw-r--r--users/app/controllers/users_controller.rb10
-rw-r--r--users/config/locales/en.yml1
-rw-r--r--users/test/integration/browser/account_test.rb8
3 files changed, 18 insertions, 1 deletions
diff --git a/users/app/controllers/users_controller.rb b/users/app/controllers/users_controller.rb
index f66277d..de21983 100644
--- a/users/app/controllers/users_controller.rb
+++ b/users/app/controllers/users_controller.rb
@@ -48,7 +48,15 @@ class UsersController < UsersBaseController
def destroy
@user.destroy
- redirect_to admin? ? users_url : root_url
+ flash[:notice] = I18n.t(:account_destroyed)
+ # admins can destroy other users
+ if @user != current_user
+ redirect_to users_url
+ else
+ # let's remove the invalid session
+ logout
+ redirect_to root_url
+ end
end
end
diff --git a/users/config/locales/en.yml b/users/config/locales/en.yml
index b69f7f4..1b5dd5e 100644
--- a/users/config/locales/en.yml
+++ b/users/config/locales/en.yml
@@ -17,6 +17,7 @@ en:
destroy_my_account: "Destroy my account"
destroy_account_info: "This will permanently destroy your account and all the data associated with it. Proceed with caution!"
admin_destroy_account: "Destroy the account %{username}"
+ account_destroyed: "The account has been destroyed successfully."
set_email_address: "Set email address"
forward_email: "Forward Email"
email_aliases: "Email Aliases"
diff --git a/users/test/integration/browser/account_test.rb b/users/test/integration/browser/account_test.rb
index 8e03856..b712c95 100644
--- a/users/test/integration/browser/account_test.rb
+++ b/users/test/integration/browser/account_test.rb
@@ -38,6 +38,14 @@ class AccountTest < BrowserIntegrationTest
assert page.has_no_selector? 'input.btn-primary.disabled'
end
+ test "account destruction" do
+ username, password = submit_signup
+ click_on I18n.t('account_settings')
+ click_on I18n.t('destroy_my_account')
+ page.save_screenshot('/tmp/destroy.png')
+ assert page.has_content?(I18n.t('account_destroyed'))
+ end
+
test "change password" do
username, password = submit_signup
click_on "Account Settings"