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()
{
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') {