From eff64806997f5ce7ded6795d27e02578f849ee28 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 25 Sep 2019 22:16:06 -0500 Subject: [PATCH] user name changes: require confirmation of new name. --- .../user_name_change_requests_controller.rb | 4 +-- .../specific/user_name_change_requests.scss | 25 ------------------- app/models/user_name_change_request.rb | 2 +- .../user_name_change_requests/new.html.erb | 3 ++- ...er_name_change_requests_controller_test.rb | 4 +-- 5 files changed, 7 insertions(+), 31 deletions(-) diff --git a/app/controllers/user_name_change_requests_controller.rb b/app/controllers/user_name_change_requests_controller.rb index 99fe20894..40df71d1b 100644 --- a/app/controllers/user_name_change_requests_controller.rb +++ b/app/controllers/user_name_change_requests_controller.rb @@ -9,7 +9,7 @@ class UserNameChangeRequestsController < ApplicationController def create @change_request = UserNameChangeRequest.create_with(user: CurrentUser.user, original_name: CurrentUser.name).create(change_request_params) - flash[:notice] = "Your name has been changed" + flash[:notice] = "Your name has been changed" if @change_request.valid? respond_with(@change_request, location: profile_path) end @@ -32,6 +32,6 @@ class UserNameChangeRequestsController < ApplicationController end def change_request_params - params.fetch(:user_name_change_request, {}).permit(%i[desired_name]) + params.fetch(:user_name_change_request, {}).permit(%i[desired_name desired_name_confirmation]) end end diff --git a/app/javascript/src/styles/specific/user_name_change_requests.scss b/app/javascript/src/styles/specific/user_name_change_requests.scss index 190097e27..e69de29bb 100644 --- a/app/javascript/src/styles/specific/user_name_change_requests.scss +++ b/app/javascript/src/styles/specific/user_name_change_requests.scss @@ -1,25 +0,0 @@ -#c-user-name-change-requests { - .feedback-category-positive { - background: var(--success-background-color); - } - - .feedback-category-negative { - background: var(--error-background-color); - } - - li { - margin-bottom: 1em; - } - - form { - margin-bottom: 2em; - } - - p { - margin: 0; - } - - section { - margin-bottom: 1em; - } -} diff --git a/app/models/user_name_change_request.rb b/app/models/user_name_change_request.rb index 3c03436ba..7bc662b46 100644 --- a/app/models/user_name_change_request.rb +++ b/app/models/user_name_change_request.rb @@ -3,7 +3,7 @@ class UserNameChangeRequest < ApplicationRecord belongs_to :approver, class_name: "User", optional: true validate :not_limited, on: :create - validates :desired_name, user_name: true + validates :desired_name, user_name: true, confirmation: true, on: :create validates_presence_of :original_name, :desired_name after_create :update_name! diff --git a/app/views/user_name_change_requests/new.html.erb b/app/views/user_name_change_requests/new.html.erb index 637faabec..cf70917f6 100644 --- a/app/views/user_name_change_requests/new.html.erb +++ b/app/views/user_name_change_requests/new.html.erb @@ -9,7 +9,8 @@ <%= error_messages_for "change_request" %> <%= simple_form_for(@change_request) do |f| %> - <%= f.input :desired_name %> + <%= f.input :desired_name, label: "Name" %> + <%= f.input :desired_name_confirmation, label: "Confirm name" %> <%= f.submit "Submit" %> <% end %> diff --git a/test/functional/user_name_change_requests_controller_test.rb b/test/functional/user_name_change_requests_controller_test.rb index a67196b20..6a6ebc0e2 100644 --- a/test/functional/user_name_change_requests_controller_test.rb +++ b/test/functional/user_name_change_requests_controller_test.rb @@ -16,9 +16,9 @@ class UserNameChangeRequestsControllerTest < ActionDispatch::IntegrationTest context "create action" do should "work" do - post_auth user_name_change_requests_path, @user, params: { user_name_change_request: { desired_name: "zun" }} + post_auth user_name_change_requests_path, @user, params: { user_name_change_request: { desired_name: "zun", desired_name_confirmation: "zun" }} - assert_response :redirect + assert_redirected_to profile_path assert_equal("zun", @user.reload.name) end end