From 057b6401f42b9fade861410f206ec2ceb5dde60f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 27 Dec 2023 13:55:29 +1100 Subject: [PATCH] Add filters for owner users --- app/Filters/UserFilters.php | 48 ++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/app/Filters/UserFilters.php b/app/Filters/UserFilters.php index 87475f25636f..be5a114e0774 100644 --- a/app/Filters/UserFilters.php +++ b/app/Filters/UserFilters.php @@ -66,21 +66,44 @@ class UserFilters extends QueryFilters */ public function entityFilter() { - return $this->builder->whereHas('company_users', function ($q) { - $q->where('company_id', '=', auth()->user()->company()->id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $this->builder->whereHas('company_users', function ($q) use ($user){ + $q->where('company_id', '=', $user->company()->id); }); } + + /** + * Hides owner users from the list. + * + * @return Builder + */ + public function hideOwnerUsers(): Builder + { + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $this->builder->whereHas('company_users', function ($q) use ($user) { + $q->where('company_id', '=', $user->company()->id)->where('is_owner', false); + }); + + } /** * Filters users that have been removed from the * company, but not deleted from the system. * - * @return void + * @return Builder */ - public function hideRemovedUsers() + public function hideRemovedUsers(): Builder { - return $this->builder->whereHas('company_users', function ($q) { - $q->where('company_id', '=', auth()->user()->company()->id)->whereNull('deleted_at'); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $this->builder->whereHas('company_users', function ($q) use ($user) { + $q->where('company_id', '=', $user->company()->id)->whereNull('deleted_at'); }); } @@ -98,12 +121,21 @@ class UserFilters extends QueryFilters return $this->builder; } + /** @var \App\Models\User $user */ + $user = auth()->user(); + return $this->builder ->orWhere($this->with_property, $value) ->orderByRaw("{$this->with_property} = ? DESC", [$value]) - ->where('account_id', auth()->user()->account_id); + ->where('account_id', $user->account_id); } - + + /** + * Returns users with permissions to send emails via OAuth + * + * @param string $value + * @return Builder + */ public function sending_users(string $value = ''): Builder { if (strlen($value) == 0 || $value != 'true') {