Completed
Push — master ( dfad4d...8cf454 )
by Philip
21:24
created

UserAdminCheckCommand::configure()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
3
namespace Dontdrinkandroot\Gitki\WebBundle\Command;
4
5
use Dontdrinkandroot\Gitki\WebBundle\Entity\User;
6
use Symfony\Component\Console\Input\InputInterface;
7
use Symfony\Component\Console\Output\OutputInterface;
8
9
class UserAdminCheckCommand extends AbstractUserCommand
10
{
11
    protected function configure()
12
    {
13
        $this
14
            ->setName('gitki:user:admin-check')
15
            ->setDescription('Checks if a user with username "admin" is available or creates it');
16
    }
17
18
    protected function execute(InputInterface $input, OutputInterface $output)
19
    {
20
        $userManager = $this->getUserManager();
21
22
        $user = $userManager->findUserByUsername('admin');
23
        if (null !== $user) {
24
            $output->writeln('Admin user already exists');
25
26
            return;
27
        }
28
29
        $password = bin2hex(random_bytes(16));
30
        /** @var User $user */
31
        $user = $userManager->createUser();
32
        $user->setUsername('admin');
33
        $user->setEmail('[email protected]');
34
        $user->setRealName('Administration User');
35
        $user->addRole('ROLE_ADMIN');
36
        $user->setEnabled(true);
37
        $user->setPlainPassword($password);
38
        $userManager->updateUser($user);
39
40
        $output->writeln('Admin user created:');
41
        $this->printUser($user, $output);
42
        $output->writeln('Password: ' . $password);
43
    }
44
}
45