diff --git a/app/helpers/user_helper.rb b/app/helpers/user_helper.rb index 13eab0d14..397fbed7e 100644 --- a/app/helpers/user_helper.rb +++ b/app/helpers/user_helper.rb @@ -91,7 +91,7 @@ module UserHelper end def user_action_text(user, attribute) - return "Change" if %w[role phone].include?(attribute) && user.send(attribute).present? + return "Change" if attribute == "phone_extension" || (%w[role phone].include?(attribute) && user.send(attribute).present?) "" end diff --git a/app/models/user.rb b/app/models/user.rb index 92fd37dc8..31d503b86 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -334,12 +334,6 @@ class User < ApplicationRecord save!(validate: false) end - def phone_with_extension - return phone if phone_extension.blank? - - "#{phone}, Ext. #{phone_extension}" - end - def assigned_to_lettings_logs lettings_logs.where(assigned_to: self) end diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb index dc8aaf28e..48beb1216 100644 --- a/app/policies/user_policy.rb +++ b/app/policies/user_policy.rb @@ -26,6 +26,7 @@ class UserPolicy %w[ edit_emails? edit_telephone_numbers? + edit_extension_numbers? edit_names? ].each do |method_name| define_method method_name do diff --git a/app/services/exports/user_export_constants.rb b/app/services/exports/user_export_constants.rb index 9ce5840d9..15fa10ea0 100644 --- a/app/services/exports/user_export_constants.rb +++ b/app/services/exports/user_export_constants.rb @@ -6,6 +6,7 @@ module Exports::UserExportConstants "email", "name", "phone", + "extension_number", "organisation_id", "organisation_name", "role", diff --git a/app/services/exports/user_export_service.rb b/app/services/exports/user_export_service.rb index 0a8ebe34e..3a9f37417 100644 --- a/app/services/exports/user_export_service.rb +++ b/app/services/exports/user_export_service.rb @@ -64,7 +64,8 @@ module Exports attribute_hash["role"] = user.role attribute_hash["organisation_name"] = user.organisation.name attribute_hash["active"] = user.active? - attribute_hash["phone"] = [user.phone, user.phone_extension].compact.join(" ") + attribute_hash["phone"] = user.phone + attribute_hash["extension_number"] = user.phone_extension attribute_hash["last_sign_in_at"] = user.last_sign_in_at&.iso8601 attribute_hash end diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index a1f104b10..d2ad8b182 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -65,6 +65,21 @@ end end %> + <%= summary_list.with_row do |row| + row.with_key { "Extension number" } + row.with_value { user_details_html(@user, current_user, "phone_extension") } + if UserPolicy.new(current_user, @user).edit_extension_numbers? + row.with_action( + text: user_action_text(@user, "phone_extension"), + visually_hidden_text: "extension number", + href: aliased_user_edit(@user, current_user), + html_attributes: { "data-qa": "change-extension-number" }, + ) + else + row.with_action + end + end %> + <%= summary_list.with_row do |row| row.with_key { "Password" } row.with_value { "••••••••" } diff --git a/spec/fixtures/exports/user.xml b/spec/fixtures/exports/user.xml index 4c5286c68..1972e2a9d 100644 --- a/spec/fixtures/exports/user.xml +++ b/spec/fixtures/exports/user.xml @@ -8,7 +8,8 @@ 5 2022-03-03T00:00:00+00:00 data_provider - 1234512345123 123 + 1234512345123 + 123 false false true