/** * @param string $email * @param string $password * @param string $roleStringIdentifier * @return User * @throws RoleDoesNotExistException * @throws UserAlreadyExistsException */ public function register(string $email, string $password, string $roleStringIdentifier) { $entityManager = $this->registry->getManager(); $email = UserTools::sanitizeUserEmail($email); $this->validateUserDoesNotExists($email); $passwordHash = Passwords::hash($password); $user = new User($email, $passwordHash); $entityManager->persist($user); $this->roleToUserAssigner->assignByString($roleStringIdentifier, $user); $entityManager->flush($user); return $user; }
/** * @param string $data * @return AuthorizationRequest */ public function unserialize(string $data) : AuthorizationRequest { $manager = $this->registry->getManager(); /** @var AuthorizationRequest $authorizationRequest */ $authorizationRequest = unserialize($data); if ($client = $authorizationRequest->getClient()) { $authorizationRequest->setClient($manager->merge($client)); } $scopes = []; foreach ($authorizationRequest->getScopes() as $scope) { $scopes[] = $manager->merge($scope); } $authorizationRequest->setScopes($scopes); return $authorizationRequest; }
/** * @param Client $client * @param MappingCreator $mappingCreator * @param Registry $registry */ public function __construct(Client $client, MappingCreator $mappingCreator, Registry $registry) { $this->client = $client; $this->mappingCreator = $mappingCreator; $this->indicesRepository = $registry->getRepository(Index::class); $this->entityManager = $registry->getManager(); }
/** * @param string $tokenId * @return bool * @throws InvalidStateException * @throws QueryException */ public function isRefreshTokenRevoked($tokenId) { /** @var RefreshTokenEntity $refreshTokenEntity */ $refreshTokenEntity = $this->registry->getManager()->getRepository(RefreshTokenEntity::class)->fetchOne($this->createQuery()->byIdentifier($tokenId)); return $refreshTokenEntity ? $refreshTokenEntity->isRevoked() : true; }
/** * @param Client $client * @param Registry $registry */ public function __construct(Client $client, Registry $registry) { $this->client = $client; $this->indicesRepository = $registry->getRepository(IndexEntity::class); $this->entityManager = $registry->getManager(); }
/** * @param string $codeId * @return bool * @throws InvalidStateException * @throws QueryException */ public function isAuthCodeRevoked($codeId) { /** @var AuthCodeEntity|null $authCodeEntity */ $authCodeEntity = $this->registry->getManager()->getRepository(AuthCodeEntity::class)->fetchOne($this->createQuery()->byIdentifier($codeId)); return $authCodeEntity ? $authCodeEntity->isRevoked() : true; }
/** * @param string $tokenId * @return bool * @throws InvalidStateException * @throws QueryException */ public function isAccessTokenRevoked($tokenId) { /** @var AccessTokenEntity|null $accessTokenEntity */ $accessTokenEntity = $this->registry->getManager()->getRepository(AccessTokenEntity::class)->fetchOne($this->createQuery()->byIdentifier($tokenId)); return $accessTokenEntity ? $accessTokenEntity->isRevoked() : true; }
/** * @param string $clientIdentifier * @param string $grantType * @param string|null $clientSecret * @param bool $mustValidateSecret * @return ClientEntity|null * @throws InvalidStateException * @throws QueryException */ public function getClientEntity($clientIdentifier, $grantType, $clientSecret = null, $mustValidateSecret = true) { /** @var ClientEntity|null $clientEntity */ $clientEntity = $this->registry->getManager()->getRepository(ClientEntity::class)->fetchOne($this->createQuery()->byIdentifier($clientIdentifier)); return $clientEntity && $mustValidateSecret && $clientEntity->getSecret() !== null && !call_user_func($this->secretValidator, $clientEntity->getSecret(), $clientSecret) ? null : $clientEntity; }
/** * @param Role $role * @param User $user * @return UserRole */ private function assign(Role $role, User $user) : UserRole { $userRole = new UserRole($user, $role); $this->registry->getManager()->persist($userRole)->flush($userRole); return $userRole; }
/** * @param string $identifier * @return ScopeEntity|null * @throws InvalidStateException * @throws QueryException */ public function getScopeEntityByIdentifier($identifier) { return $this->registry->getManager()->getRepository(ScopeEntity::class)->fetchOne($this->createQuery()->byIdentifier($identifier)); }