eZ\Bundle\EzPublishCoreBundle\Features\Context\UserContext::ensureUserExists PHP Метод

ensureUserExists() публичный Метод

Make sure a User with name $username, $email and $password exists in parent group.
public ensureUserExists ( string $username, string $email, string $password, string $parentGroupName = null ) : eZ\Publish\API\Repository\Values\User\User
$username string User name
$email string User's email
$password string User's password
$parentGroupName string (optional) name of the parent group to check
Результат eZ\Publish\API\Repository\Values\User\User
    public function ensureUserExists($username, $email, $password, $parentGroupName = null)
    {
        if ($parentGroupName) {
            $parentSearchHits = $this->searchUserGroups($parentGroupName);
            // Found matching Group(s)
            if (!empty($parentSearchHits)) {
                $firstGroupId = $parentSearchHits[0]->valueObject->contentInfo->id;
                foreach ($parentSearchHits as $userGroupHit) {
                    $groupId = $userGroupHit->valueObject->contentInfo->id;
                    // Search for user in this group
                    $user = $this->searchUserByLogin($username, $groupId);
                    if ($user) {
                        return $user;
                    }
                }
                // create user inside existing parent Group, use first group found
                $parentGroup = $this->userService->loadUserGroup($firstGroupId);
                return $this->createUser($username, $email, $password, $parentGroup);
            }
            // else
            // Parent Group does not exist yet, so create it at "root" User Group.
            $rootGroup = $this->userService->loadUserGroup(self::USERGROUP_ROOT_CONTENT_ID);
            $parentGroup = $this->createUserGroup($parentGroupName, $rootGroup);
            return $this->createUser($username, $email, $password, $parentGroup);
        }
        // else,
        $user = $this->searchUserByLogin($username);
        if (!$user) {
            $user = $this->createUser($username, $email, $password);
        }
        return $user;
    }