Beispiel #1
0
 /**
  * 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);
 }