add initial admin

This commit is contained in:
Yisroel Baum 2026-07-02 01:15:30 +03:00
parent b55769516e
commit 0d2c44da13
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
2 changed files with 43 additions and 0 deletions

View file

@ -0,0 +1,31 @@
<?php
namespace App\User\UseCases\EnsureInitialAdmin;
use App\Auth\PasswordHasher;
use App\Shared\ValueObject\EmailAddress;
use App\User\CreateUserDto;
use App\User\UserRepository;
class EnsureInitialAdmin
{
public function __construct(
private UserRepository $userRepository,
private PasswordHasher $passwordHasher,
) {
}
public function execute(EnsureInitialAdminRequest $request): void
{
$email = new EmailAddress($request->email);
$existingUser = $this->userRepository->findByEmail($email);
if ($existingUser !== null) {
return;
}
$this->userRepository->create(new CreateUserDto(
email: $email,
passwordHash: $this->passwordHasher->hash($request->password),
));
}
}

View file

@ -0,0 +1,12 @@
<?php
namespace App\User\UseCases\EnsureInitialAdmin;
class EnsureInitialAdminRequest
{
public function __construct(
public string $email,
public string $password,
) {
}
}