diff options
author | Azul <azul@riseup.net> | 2017-11-13 13:16:41 +0100 |
---|---|---|
committer | Azul <azul@riseup.net> | 2017-11-13 13:16:41 +0100 |
commit | 028376fe1ea7638f0119ba9614629f66453d206f (patch) | |
tree | e73c759f133da8bddd68ed8bd8168b1919f67989 | |
parent | a20a1c1671d3833c7f26b678f3e476b26126c8ca (diff) |
fix: alternate email dialogue
fixes #8796
Cleaned up UserController#update earlier but missed that it was
used to change fallback email addresses. Now it is back. This
time including an integration test.
-rw-r--r-- | app/controllers/users_controller.rb | 8 | ||||
-rw-r--r-- | app/views/users/_edit.html.haml | 3 | ||||
-rw-r--r-- | test/integration/browser/alternate_email_test.rb | 25 |
3 files changed, 34 insertions, 2 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index da82d1c..b4c98a0 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -31,6 +31,12 @@ class UsersController < ApplicationController def edit end + def update + @user.update_attributes user_params + flash[:notice] = I18n.t(:changes_saved) if @user.valid? + respond_with @user, location: edit_user_path(@user) + end + def deactivate @user.account.disable flash[:notice] = I18n.t("actions.user_disabled_message", username: @user.username) @@ -62,7 +68,7 @@ class UsersController < ApplicationController if admin? params.require(:user).permit(:effective_service_level) else - params.require(:user).permit(:password, :password_confirmation) + params.require(:user).permit(:contact_email) end end diff --git a/app/views/users/_edit.html.haml b/app/views/users/_edit.html.haml index 1d2b68a..8662979 100644 --- a/app/views/users/_edit.html.haml +++ b/app/views/users/_edit.html.haml @@ -2,12 +2,13 @@ -# edit user form, used by both show and edit actions. -# -# We render a bunch of forms here. Which we use depends upon config settings --# user_actions and admin_actions. They both include an array of actions +-# user_actions and admin_actions. They both include an array of actions -# allowed to users and admins. -# Possible forms are: -# 'change_password' -# 'change_pgp_key' -# 'change_service_level' +-# 'contact_email' -# 'destroy_account' - actions = APP_CONFIG[admin? ? :admin_actions : :user_actions] || [] - actions.each do |action| diff --git a/test/integration/browser/alternate_email_test.rb b/test/integration/browser/alternate_email_test.rb new file mode 100644 index 0000000..fc58fb4 --- /dev/null +++ b/test/integration/browser/alternate_email_test.rb @@ -0,0 +1,25 @@ +require 'test_helper' + +class AlternateEmailTest < BrowserIntegrationTest + test "change alternate email" do + username, password = submit_signup + click_on 'Account Settings' + within(".edit_user") do + fill_in 'user_contact_email', with: 'test@leap.se' + click_on 'Save' + end + assert page.has_content?('Changes saved successfully') + assert_equal 'test@leap.se', + page.find('#user_contact_email').value + end + + test "change alternate email to invalid" do + username, password = submit_signup + click_on 'Account Settings' + within(".edit_user") do + fill_in 'user_contact_email', with: 'test@invalid' + click_on 'Save' + assert page.has_content?('is invalid') + end + end +end |