66 lines
1.9 KiB
PHP
66 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Entity\Fixture;
|
|
|
|
use App\Entity;
|
|
use Doctrine\Common\DataFixtures\AbstractFixture;
|
|
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
|
use Doctrine\Persistence\ObjectManager;
|
|
|
|
class User extends AbstractFixture implements DependentFixtureInterface
|
|
{
|
|
public function load(ObjectManager $manager): void
|
|
{
|
|
$admin_email = getenv('INIT_ADMIN_EMAIL');
|
|
$admin_password = getenv('INIT_ADMIN_PASSWORD');
|
|
|
|
if (!empty($admin_email) && !empty($admin_password)) {
|
|
$demo_user = new Entity\User();
|
|
$demo_user->setEmail('demo@azuracast.com');
|
|
$demo_user->setNewPassword('demo');
|
|
$demo_user->setName('AzuraCast Demo User');
|
|
|
|
/** @var Entity\Role $demoRole */
|
|
$demoRole = $this->getReference('demo_role');
|
|
$demo_user->getRoles()->add($demoRole);
|
|
|
|
$manager->persist($demo_user);
|
|
|
|
$this->addReference('demo_user', $demo_user);
|
|
|
|
$admin_user = new Entity\User();
|
|
$admin_user->setEmail($admin_email);
|
|
$admin_user->setName('System Administrator');
|
|
$admin_user->setNewPassword($admin_password);
|
|
$admin_user->setTheme('dark');
|
|
|
|
/** @var Entity\Role $adminRole */
|
|
$adminRole = $this->getReference('admin_role');
|
|
$admin_user->getRoles()->add($adminRole);
|
|
|
|
$admin_2fa_secret = getenv('INIT_ADMIN_2FA_SECRET');
|
|
if (!empty($admin_2fa_secret)) {
|
|
$admin_user->setTwoFactorSecret($admin_2fa_secret);
|
|
}
|
|
|
|
$manager->persist($admin_user);
|
|
|
|
$this->addReference('admin_user', $admin_user);
|
|
}
|
|
|
|
$manager->flush();
|
|
}
|
|
|
|
/**
|
|
* @return string[]
|
|
*/
|
|
public function getDependencies(): array
|
|
{
|
|
return [
|
|
Role::class,
|
|
];
|
|
}
|
|
}
|