From fa84e1336aa9363aa7ae2bdb2675a79ec0985ec4 Mon Sep 17 00:00:00 2001
From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com>
Date: Tue, 25 Mar 2025 08:55:06 +0000
Subject: [PATCH] Update current user logic
---
app/helpers/organisations_helper.rb | 8 +++---
app/views/organisations/show.html.erb | 2 +-
spec/helpers/organisations_helper_spec.rb | 30 ++++++++++++++++++++---
3 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/app/helpers/organisations_helper.rb b/app/helpers/organisations_helper.rb
index cbd4b5646..544f3f243 100644
--- a/app/helpers/organisations_helper.rb
+++ b/app/helpers/organisations_helper.rb
@@ -9,7 +9,7 @@ module OrganisationsHelper
end
end
- def display_organisation_attributes(organisation)
+ def display_organisation_attributes(user, organisation)
attributes = [
{ name: "Organisation ID", value: "ORG#{organisation.id}", editable: false },
{ name: "Address", value: organisation.address_string, editable: true },
@@ -17,14 +17,14 @@ module OrganisationsHelper
{ name: "Registration number", value: organisation.housing_registration_no || "", editable: false },
{ name: "Type of provider", value: organisation.display_provider_type, editable: false },
{ name: "Owns housing stock", value: organisation.holds_own_stock ? "Yes" : "No", editable: false },
- { name: "Part of group", value: organisation.group_member ? "Yes" : "No", editable: current_user.support? },
+ { name: "Part of group", value: organisation.group_member ? "Yes" : "No", editable: user.support? },
]
if organisation.group_member
- attributes << { name: "Group number", value: "GROUP#{organisation.group}", editable: current_user.support? }
+ attributes << { name: "Group number", value: "GROUP#{organisation.group}", editable: user.support? }
end
- attributes << { name: "For profit", value: organisation.display_profit_status, editable: current_user.support? }
+ attributes << { name: "For profit", value: organisation.display_profit_status, editable: user.support? }
attributes << { name: "Rent periods", value: organisation.rent_period_labels, editable: true, format: :bullet }
attributes << { name: "Data Sharing Agreement" }
attributes << { name: "Status", value: status_tag(organisation.status) + delete_organisation_text(organisation), editable: false }
diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb
index 42c2482f7..e275769ee 100644
--- a/app/views/organisations/show.html.erb
+++ b/app/views/organisations/show.html.erb
@@ -15,7 +15,7 @@
<%= govuk_summary_list do |summary_list| %>
<%= organisation_name_row(user: current_user, organisation: @organisation, summary_list:) %>
- <% display_organisation_attributes(@organisation).each do |attr| %>
+ <% display_organisation_attributes(current_user, @organisation).each do |attr| %>
<% if attr[:name] == "Data Sharing Agreement" %>
<%= data_sharing_agreement_row(organisation: @organisation, user: current_user, summary_list:) %>
<% else %>
diff --git a/spec/helpers/organisations_helper_spec.rb b/spec/helpers/organisations_helper_spec.rb
index ea0d9b158..2741d7f7a 100644
--- a/spec/helpers/organisations_helper_spec.rb
+++ b/spec/helpers/organisations_helper_spec.rb
@@ -3,10 +3,12 @@ require "rails_helper"
RSpec.describe OrganisationsHelper do
include TagHelper
describe "display_organisation_attributes" do
- let(:organisation) { create(:organisation, :la, :holds_own_stock, address_line1: "2 Marsham Street", address_line2: "London", postcode: "SW1P 4DF", housing_registration_no: 1234, organisation_rent_periods: []) }
+ let(:support_user) { create(:user, :support) }
+ let(:coordinator_user) { create(:user, :data_coordinator) }
+ let(:organisation) { create(:organisation, :la, :holds_own_stock, address_line1: "2 Marsham Street", address_line2: "London", postcode: "SW1P 4DF", housing_registration_no: 1234, organisation_rent_periods: [], group_member: true, group_member_id: 99, group: 1) }
- it "has the correct values" do
- expect(display_organisation_attributes(organisation)).to eq(
+ it "has the correct values and editable status for support users" do
+ expect(display_organisation_attributes(support_user, organisation)).to eq(
[{ editable: false, name: "Organisation ID", value: "ORG#{organisation.id}" },
{ editable: true,
name: "Address",
@@ -15,11 +17,33 @@ RSpec.describe OrganisationsHelper do
{ editable: false, name: "Registration number", value: "1234" },
{ editable: false, name: "Type of provider", value: "Local authority" },
{ editable: false, name: "Owns housing stock", value: "Yes" },
+ { editable: true, name: "Part of group", value: "Yes"},
+ { editable: true, name: "Group number", value: "GROUP1"},
+ { editable: true, name: "For profit", value: ""},
{ editable: true, format: :bullet, name: "Rent periods", value: [] },
{ name: "Data Sharing Agreement" },
{ editable: false, name: "Status", value: status_tag(organisation.status) }],
)
end
+
+ it "has the correct values and editable status for non-support users" do
+ expect(display_organisation_attributes(coordinator_user, organisation)).to eq(
+ [{ editable: false, name: "Organisation ID", value: "ORG#{organisation.id}" },
+ { editable: true,
+ name: "Address",
+ value: "2 Marsham Street\nLondon\nSW1P 4DF" },
+ { editable: true, name: "Telephone number", value: nil },
+ { editable: false, name: "Registration number", value: "1234" },
+ { editable: false, name: "Type of provider", value: "Local authority" },
+ { editable: false, name: "Owns housing stock", value: "Yes" },
+ { editable: false, name: "Part of group", value: "Yes"},
+ { editable: false, name: "Group number", value: "GROUP1"},
+ { editable: false, name: "For profit", value: ""},
+ { editable: true, format: :bullet, name: "Rent periods", value: [] },
+ { name: "Data Sharing Agreement" },
+ { editable: false, name: "Status", value: status_tag(organisation.status) }],
+ )
+ end
end
describe "rent_periods_with_checked_attr" do