You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
57 lines
1.7 KiB
<?php |
|
|
|
declare(strict_types=1); |
|
|
|
require_once __DIR__ . '/../vendor/autoload.php'; |
|
|
|
use AutoStore\DiContainer; |
|
use AutoStore\Application\Interfaces\IUserRepository; |
|
use Psr\Log\LoggerInterface; |
|
|
|
try { |
|
$diContainer = new DiContainer(); |
|
$logger = $diContainer->get(LoggerInterface::class); |
|
$userRepository = $diContainer->get(IUserRepository::class); |
|
|
|
$logger->info('Starting default users initialization...'); |
|
|
|
$requiredUsernames = ['admin', 'user']; |
|
$missingUsers = []; |
|
|
|
foreach ($requiredUsernames as $username) { |
|
$user = $userRepository->findByUsername($username); |
|
if ($user === null) { |
|
$missingUsers[] = $username; |
|
} |
|
} |
|
|
|
if (empty($missingUsers)) { |
|
$logger->info('Default users already exist. Skipping initialization.'); |
|
exit(0); |
|
} |
|
|
|
$defaultUsers = [ |
|
['username' => 'admin', 'password' => 'admin'], |
|
['username' => 'user', 'password' => 'user'] |
|
]; |
|
|
|
foreach ($defaultUsers as $userData) { |
|
if (in_array($userData['username'], $missingUsers)) { |
|
$user = new \AutoStore\Domain\Entities\User( |
|
uniqid('user_', true), |
|
$userData['username'], |
|
password_hash($userData['password'], PASSWORD_DEFAULT) |
|
); |
|
$userRepository->save($user); |
|
$logger->info("Created default user: {$userData['username']}"); |
|
} |
|
} |
|
|
|
$logger->info('Default users initialization completed successfully'); |
|
exit(0); |
|
|
|
} catch (\Exception $e) { |
|
$logger = $logger ?? new \Monolog\Logger('user-init'); |
|
$logger->error('Default users initialization failed: ' . $e->getMessage()); |
|
exit(1); |
|
} |