Add filters for owner users

This commit is contained in:
David Bomba 2023-12-27 13:55:29 +11:00
parent 64e2e1d7db
commit 057b6401f4

View File

@ -66,21 +66,44 @@ class UserFilters extends QueryFilters
*/ */
public function entityFilter() 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 * Filters users that have been removed from the
* company, but not deleted from the system. * 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) { /** @var \App\Models\User $user */
$q->where('company_id', '=', auth()->user()->company()->id)->whereNull('deleted_at'); $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; return $this->builder;
} }
/** @var \App\Models\User $user */
$user = auth()->user();
return $this->builder return $this->builder
->orWhere($this->with_property, $value) ->orWhere($this->with_property, $value)
->orderByRaw("{$this->with_property} = ? DESC", [$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 public function sending_users(string $value = ''): Builder
{ {
if (strlen($value) == 0 || $value != 'true') { if (strlen($value) == 0 || $value != 'true') {