From 13d9d1f27d7e3e63b06d3b235627b622dfe43c0a Mon Sep 17 00:00:00 2001 From: PencilAmazing <16854231+PencilAmazing@users.noreply.github.com> Date: Sat, 18 Jan 2025 13:28:42 -0500 Subject: [PATCH] Simple widget to rename users We've had a request by one user so far, and it would be nicer to not have a dev mess around the DB manually --- app/controllers/admin/users_controller.rb | 22 ++++++++++++++++++ app/views/users/_tablist.html.erb | 6 +++++ app/views/users/show.html.erb | 3 +++ app/views/users/tabs/_rename.html.erb | 14 +++++++++++ config/routes.rb | 1 + .../admin/users_controller_spec.rb | 23 +++++++++++++++++++ 6 files changed, 69 insertions(+) create mode 100644 app/views/users/tabs/_rename.html.erb diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 19847e44f..9a43a762e 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -278,6 +278,28 @@ def manage_roles end end + def rename_user + user = User.find(params[:id]) + if user.blank? + head status: :not_found + return + end + + unless params[:rename].present? + flash[:alert] = "No username provided" + redirect_to user_path(user.username) + return + end + + if user.update(username: params[:rename]) + flash[:notice] = "User renamed successfully" + else + flash[:alert] = "Username invalid: " + + user.errors.full_messages.join("
") + end + redirect_to user_path(user.reload.username) + end + private def user_params diff --git a/app/views/users/_tablist.html.erb b/app/views/users/_tablist.html.erb index c3b31035c..58ac91071 100644 --- a/app/views/users/_tablist.html.erb +++ b/app/views/users/_tablist.html.erb @@ -85,6 +85,12 @@ Quick Access +