/** * Handle the command. * * @param RoleRepositoryInterface $roles */ public function handle(RoleRepositoryInterface $roles) { if (!$this->query->getQuery()->joins && ($permission = array_get($this->fieldType->getConfig(), 'permission'))) { $accessible = $roles->findByPermission($permission); if (!$accessible->isEmpty()) { $this->query->join('users_users_roles', 'users_users_roles.entry_id', '=', 'users_users.id')->whereIn('users_users_roles.related_id', $accessible->lists('id')); } } }
/** * Handle the command. * * @param RoleRepositoryInterface $roles */ public function handle(RoleRepositoryInterface $roles) { if ($role = array_get($this->fieldType->getConfig(), 'role')) { if (is_numeric($role)) { $role = $roles->find($role); } if (is_string($role)) { $role = $roles->findBySlug($role); } if ($role) { // The role exists so join and limit results to that role's ID. $this->query->join('users_users_roles', 'users_users_roles.entry_id', '=', 'users_users.id')->where('users_users_roles.related_id', $role->getId()); } else { // The role doesn't exist so don't return anything. $this->query->join('users_users_roles', 'users_users_roles.entry_id', '=', 'users_users.id')->where('users_users_roles.related_id', false); } } }
/** * Handle the command. * * @param Container $container */ public function handle(Container $container) { $container->call(array_get($this->fieldType->getConfig(), 'handler'), ['fieldType' => $this->fieldType]); }