mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Updates for user filters
This commit is contained in:
parent
b540a98ac6
commit
b7b55a7a91
@ -130,4 +130,50 @@ class UserFilters extends QueryFilters
|
||||
$query->whereNotIn('id', $user_array);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the list based on the status
|
||||
* archived, active, deleted.
|
||||
*
|
||||
* @param string $filter
|
||||
* @return Builder
|
||||
*/
|
||||
public function status(string $filter = ''): Builder
|
||||
{
|
||||
|
||||
|
||||
if (strlen($filter) == 0) {
|
||||
return $this->builder;
|
||||
}
|
||||
|
||||
$filters = explode(',', $filter);
|
||||
|
||||
return $this->builder->where(function ($query) use ($filters) {
|
||||
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
if (in_array(self::STATUS_ACTIVE, $filters)) {
|
||||
$query = $query->orWhereHas('company_users', function ($q) use($user){
|
||||
$q->where('company_id', $user->company()->id)->whereNull('deleted_at');
|
||||
});
|
||||
}
|
||||
|
||||
if (in_array(self::STATUS_ARCHIVED, $filters)) {
|
||||
$query = $query->orWhereHas('company_users', function ($q) use($user){
|
||||
$q->where('company_id', $user->company()->id)->whereNotNull('deleted_at')->where('is_deleted', 0);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (in_array(self::STATUS_DELETED, $filters)) {
|
||||
$query = $query->orWhereHas('company_users', function ($q) use($user){
|
||||
$q->where('company_id', $user->company()->id)->where('is_deleted', 1);
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user