/** * Loads users. * * @return \eZ\Publish\Core\REST\Server\Values\UserList|\eZ\Publish\Core\REST\Server\Values\UserRefList */ public function loadUsers(Request $request) { $restUsers = array(); try { if ($request->query->has('roleId')) { $restUsers = $this->loadUsersAssignedToRole($this->requestParser->parseHref($request->query->get('roleId'), 'roleId')); } elseif ($request->query->has('remoteId')) { $restUsers = array($this->buildRestUserObject($this->userService->loadUser($this->contentService->loadContentInfoByRemoteId($request->query->get('remoteId'))->id))); } elseif ($request->query->has('login')) { $restUsers = array($this->buildRestUserObject($this->userService->loadUserByLogin($request->query->get('login')))); } elseif ($request->query->has('email')) { foreach ($this->userService->loadUsersByEmail($request->query->get('email')) as $user) { $restUsers[] = $this->buildRestUserObject($user); } } } catch (ApiExceptions\UnauthorizedException $e) { $restUsers = []; } if (empty($restUsers)) { throw new NotFoundException('No users were found with the given filter'); } if ($this->getMediaType($request) === 'application/vnd.ez.api.userlist') { return new Values\UserList($restUsers, $request->getPathInfo()); } return new Values\UserRefList($restUsers, $request->getPathInfo()); }
/** * Checks if the User with email $email exists. * * @param string $email User email * @param string $parentGroupName User group name to search inside * * @return bool true if it exists, false if not */ public function checkUserExistenceByEmail($email, $parentGroupName = null) { $existingUsers = $this->userService->loadUsersByEmail($email); if (count($existingUsers) == 0) { return false; } if ($parentGroupName) { foreach ($existingUsers as $user) { $userGroups = $this->userService->loadUserGroupsOfUser($user); foreach ($userGroups as $userGroup) { if ($userGroup->getFieldValue('name') == $parentGroupName) { return true; } } } } return false; }
/** * Loads a user for the given email * * Returns an array of Users since eZ Publish has under certain circumstances allowed * several users having same email in the past (by means of a configuration option). * * @param string $email * * @return \eZ\Publish\API\Repository\Values\User\User[] */ public function loadUsersByEmail($email) { return $this->service->loadUsersByEmail($email); }