From 922fa0a7b19fa30d903a4ddf61854fa57e1fd77c Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 30 May 2022 10:16:46 +0100 Subject: [PATCH] Refactor --- app/controllers/users_controller.rb | 8 ++++++-- app/models/user.rb | 4 ++++ app/views/users/deactivate.html.erb | 23 ----------------------- app/views/users/reactivate.html.erb | 20 -------------------- app/views/users/show.html.erb | 2 +- app/views/users/toggle-active.html.erb | 26 ++++++++++++++++++++++++++ 6 files changed, 37 insertions(+), 46 deletions(-) delete mode 100644 app/views/users/deactivate.html.erb delete mode 100644 app/views/users/reactivate.html.erb create mode 100644 app/views/users/toggle-active.html.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f7e7c5a81..e77c687bf 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -81,13 +81,17 @@ class UsersController < ApplicationController end def deactivate - unless current_user != @user && (current_user.support? || current_user.data_coordinator?) + if current_user.can_toggle_active?(@user) + render "toggle-active", locals: { action: "deactivate" } + else redirect_to user_path(@user) end end def reactivate - unless current_user != @user && (current_user.support? || current_user.data_coordinator?) + if current_user.can_toggle_active?(@user) + render "toggle-active", locals: { action: "reactivate" } + else redirect_to user_path(@user) end end diff --git a/app/models/user.rb b/app/models/user.rb index b6e53d219..f6a20c722 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -135,4 +135,8 @@ class User < ApplicationRecord end end end + + def can_toggle_active?(user) + self != user && (support? || data_coordinator?) + end end diff --git a/app/views/users/deactivate.html.erb b/app/views/users/deactivate.html.erb deleted file mode 100644 index ce5b64f1e..000000000 --- a/app/views/users/deactivate.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -<% content_for :title, current_user == @user ? "Your account" : "#{@user.name.presence || @user.email}’s account" %> - -
- <%= form_for(@user, as: :user, html: { method: :patch }) do |f| %> -
-

- <%= @user.name %> - Are you sure you want to deactivate this user? -

-

Deactivating this user will mean they can no longer access this service to submit CORE data.

-

Any logs this user has already submitted will not be affected.

- <%= f.govuk_text_field :active, - value: false, - hidden: true %> - - <%= f.govuk_submit "I’m sure - deactivate this user" %> -

- <%= govuk_link_to("No - I’ve changed my mind", user_path(@user)) %> -

-
-
- <% end %> - diff --git a/app/views/users/reactivate.html.erb b/app/views/users/reactivate.html.erb deleted file mode 100644 index 4bda0ca4d..000000000 --- a/app/views/users/reactivate.html.erb +++ /dev/null @@ -1,20 +0,0 @@ -<% content_for :title, current_user == @user ? "Your account" : "#{@user.name.presence || @user.email}’s account" %> - -
- <%= form_for(@user, as: :user, html: { method: :patch }) do |f| %> -
-

- <%= @user.name %> - Are you sure you want to reactivate this user? -

- <%= f.govuk_text_field :active, - value: true, - hidden: true %> - <%= f.govuk_submit "I’m sure - reactivate this user" %> -

- <%= govuk_link_to("No - I’ve changed my mind", user_path(@user)) %> -

-
-
- <% end %> - diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 0166f28cd..33a4fda96 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -5,7 +5,7 @@

<%= content_for(:title) %>

- <% if can_toggle_active?(@user, current_user) %> + <% if current_user.can_toggle_active?(@user) %> <% if @user.active? %> <%= govuk_link_to "Deactivate user", "/users/#{@user.id}/deactivate" %> <% else %> diff --git a/app/views/users/toggle-active.html.erb b/app/views/users/toggle-active.html.erb new file mode 100644 index 000000000..6265866cf --- /dev/null +++ b/app/views/users/toggle-active.html.erb @@ -0,0 +1,26 @@ +<% content_for :title, "#{action.capitalize} #{@user.name.presence || @user.email}’s account" %> + +
+ <%= form_for(@user, as: :user, html: { method: :patch }) do |f| %> +
+

+ <%= @user.name %> + Are you sure you want to <%= action %> this user? +

+ <% if action == "deactivate" %> +

Deactivating this user will mean they can no longer access this service to submit CORE data.

+

Any logs this user has already submitted will not be affected.

+ <% end %> + <% active_value = action == "deactivate" ? false : true %> + + <%= f.govuk_submit "I’m sure - #{action} this user" %> +

+ <%= govuk_link_to("No - I’ve changed my mind", user_path(@user)) %> +

+
+
+ <% end %> + \ No newline at end of file