From 7af73979b0c4640e5c7762e6e4274808893fbea8 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:52:52 +0100 Subject: [PATCH] Refactor visible organisations logic into a class method --- app/models/user.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 241994bfa..f196bcb9a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -10,6 +10,12 @@ class User < ApplicationRecord Thread.current[:current_user] end + def self.visible_organisations + return [] unless current + + current.organisation.child_organisations + [current.organisation] + end + # Marked as optional because we validate organisation_id below instead so that # the error message is linked to the right field on the form belongs_to :organisation, optional: true @@ -89,11 +95,10 @@ class User < ApplicationRecord scope :deactivated, -> { where(active: false) } scope :active_status, -> { where(active: true).where.not(last_sign_in_at: nil) } scope :visible, lambda { - current_user = User.current - if current_user&.support? + if User.current&.support? where(discarded_at: nil) else - where(discarded_at: nil, organisation: current_user.organisation.child_organisations + [current_user.organisation]) + where(discarded_at: nil, organisation: visible_organisations) end }