user name changes: require confirmation of new name.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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 %>
|
||||
</div>
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user