User Entity Repository
User Entity
<?php
declare(strict_types=1);
namespace App\Repository;
use App\Entity\User;
use Webauthn\Bundle\Repository\PublicKeyCredentialUserEntityRepositoryInterface;
use Webauthn\PublicKeyCredentialUserEntity;
final class WebauthnUserEntityRepository implements PublicKeyCredentialUserEntityRepositoryInterface
{
/**
* The UserRepository $userRepository is the repository
* that already exists in the application
*/
public function __construct(private UserRepository $userRepository)
{
}
public function findOneByUsername(string $username): ?PublicKeyCredentialUserEntity
{
/** @var User|null $user */
$user = $this->userRepository->findOneBy([
'username' => $username,
]);
return $this->getUserEntity($user);
}
public function findOneByUserHandle(string $userHandle): ?PublicKeyCredentialUserEntity
{
/** @var User|null $user */
$user = $this->userRepository->findOneBy([
'id' => $userHandle,
]);
return $this->getUserEntity($user);
}
/**
* Converts a Symfony User (if any) into a Webauthn User Entity
*/
private function getUserEntity(null|User $user): ?PublicKeyCredentialUserEntity
{
if ($user === null) {
return null;
}
return new PublicKeyCredentialUserEntity(
$user->getUsername(),
$user->getUserIdentifier(),
$user->getDisplayName(),
null
);
}
}
Registration Capability
Was this helpful?