entityManager = $entityManager; } public function find(string $username, string $hash): ?User { /** @var ?User $user */ $user = $this->entityManager ->getRDBRepository(User::ENTITY_TYPE) ->where([ 'userName' => $username, 'password' => $hash, 'type!=' => [User::TYPE_API, User::TYPE_SYSTEM], ]) ->findOne(); return $user; } public function findApiHmac(string $apiKey): ?User { /** @var ?User $user */ $user = $this->entityManager ->getRDBRepository(User::ENTITY_TYPE) ->where([ 'type' => User::TYPE_API, 'apiKey' => $apiKey, 'authMethod' => Hmac::NAME, ]) ->findOne(); return $user; } public function findApiApiKey(string $apiKey): ?User { /** @var ?User $user */ $user = $this->entityManager ->getRDBRepository(User::ENTITY_TYPE) ->where([ 'type' => User::TYPE_API, 'apiKey' => $apiKey, 'authMethod' => ApiKey::NAME, ]) ->findOne(); return $user; } }