From 07e0951490a480204add4e05c7b98f82c79f9845 Mon Sep 17 00:00:00 2001 From: JASON KNOEPFLER Date: Fri, 20 Sep 2019 10:35:25 -0700 Subject: [PATCH 1/4] Change users#update email change flash alert --- app/controllers/spree/admin/users_controller.rb | 6 +++++- config/locales/en.yml | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/spree/admin/users_controller.rb b/app/controllers/spree/admin/users_controller.rb index 17ab1d041d..b2c91611df 100644 --- a/app/controllers/spree/admin/users_controller.rb +++ b/app/controllers/spree/admin/users_controller.rb @@ -46,7 +46,11 @@ module Spree @user.spree_roles = roles.reject(&:blank?).collect{ |r| Spree::Role.find(r) } end - flash.now[:success] = Spree.t(:account_updated) + if params[:user][:email] != @user.email + flash.now[:success] = Spree.t(:email_updated) + else + flash.now[:success] = Spree.t(:account_updated) + end end render :edit end diff --git a/config/locales/en.yml b/config/locales/en.yml index 9348cd9138..b595cb9da0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2943,6 +2943,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using email: Email # TODO: remove 'account_updated' key once we get to Spree 2.0 account_updated: "Account updated!" + email_updated: "The account will be updated once the new email is confirmed." my_account: "My account" date: "Date" time: "Time" From 62599e8dfc5bf238b4b09ba05adbe231548e921a Mon Sep 17 00:00:00 2001 From: JASON KNOEPFLER Date: Fri, 20 Sep 2019 15:28:25 -0700 Subject: [PATCH 2/4] Edit user email feature spec --- spec/features/admin/users_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/features/admin/users_spec.rb b/spec/features/admin/users_spec.rb index d58ba686a6..4ab504c5a4 100644 --- a/spec/features/admin/users_spec.rb +++ b/spec/features/admin/users_spec.rb @@ -64,6 +64,13 @@ feature "Managing users" do expect(page).to have_content("Account updated") end + + it "should let me edit the user email" do + fill_in "Email", with: "newemail@example.org" + click_button "Update" + + expect(page).to have_content("The account will be updated once the new email is confirmed.") + end end end From 4ec8fcd3a6e2677315e0dd97a61e2d7aff5eb66f Mon Sep 17 00:00:00 2001 From: JASON KNOEPFLER Date: Sat, 21 Sep 2019 08:10:58 -0700 Subject: [PATCH 3/4] Assign flash message var from conditional return --- app/controllers/spree/admin/users_controller.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/spree/admin/users_controller.rb b/app/controllers/spree/admin/users_controller.rb index b2c91611df..b2fe682cb7 100644 --- a/app/controllers/spree/admin/users_controller.rb +++ b/app/controllers/spree/admin/users_controller.rb @@ -46,11 +46,12 @@ module Spree @user.spree_roles = roles.reject(&:blank?).collect{ |r| Spree::Role.find(r) } end - if params[:user][:email] != @user.email - flash.now[:success] = Spree.t(:email_updated) - else - flash.now[:success] = Spree.t(:account_updated) - end + message = if params[:user][:email] != @user.email + Spree.t(:email_updated) + else + Spree.t(:account_updated) + end + flash.now[:success] = message end render :edit end From c46fe7b675dfb20a6c6a681b47179d9c5d467e3d Mon Sep 17 00:00:00 2001 From: JASON KNOEPFLER Date: Wed, 25 Sep 2019 19:41:33 -0700 Subject: [PATCH 4/4] encapsulate new unconfirmed email logic --- app/controllers/spree/admin/users_controller.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/spree/admin/users_controller.rb b/app/controllers/spree/admin/users_controller.rb index b2fe682cb7..d941785f01 100644 --- a/app/controllers/spree/admin/users_controller.rb +++ b/app/controllers/spree/admin/users_controller.rb @@ -46,7 +46,7 @@ module Spree @user.spree_roles = roles.reject(&:blank?).collect{ |r| Spree::Role.find(r) } end - message = if params[:user][:email] != @user.email + message = if new_email_unconfirmed? Spree.t(:email_updated) else Spree.t(:account_updated) @@ -131,6 +131,10 @@ module Spree def load_roles @roles = Spree::Role.scoped end + + def new_email_unconfirmed? + params[:user][:email] != @user.email + end end end end