FosUserRegistrator   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 54
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A registerUser() 0 14 1
A generatePassword() 0 4 1
1
<?php
2
3
namespace SkautisBundle\Security\Authentication\Registrator;
4
5
6
use Skautis\Skautis;
7
use FOS\UserBundle\Model\UserManager;
8
use SkautisBundle\Security\Authentication\Registrator\UserRegistratorInterface;
9
10
class FosUserRegistrator implements UserRegistratorInterface
11
{
12
    const NUMBER_OF_RANDOM_BYTES = 10;
13
14
    /**
15
     * @var Skautis
16
     */
17
    protected $skautis;
18
19
    /**
20
     * @var UserManager
21
     */
22
    protected $userManager;
23
24
    /**
25
     * DoctrineRegistrator constructor.
26
     * @param Skautis $skautis
27
     * @param UserManager $userManager
28
     */
29
    public function __construct(Skautis $skautis, UserManager $userManager)
30
    {
31
        $this->skautis = $skautis;
32
        $this->userManager = $userManager;
33
    }
34
35
36
    /**
37
     * @return string Username of newly registered user
38
     */
39
    public function registerUser()
40
    {
41
        $data = $this->skautis->user->UserDetail();
42
43
        $user = $this->userManager->createUser();
44
        $user->setEnabled(true);
45
        $user->setUsername($data->UserName);
46
        $user->setPassword($this->generatePassword());
47
        $user->setEmail("[email protected]");
48
49
        $this->userManager->updateUser($user);
50
51
        return $user->getUsername();
52
    }
53
54
    /**
55
     * Generate password for newly registered user
56
     * @return string
57
     */
58
    protected function generatePassword()
59
    {
60
        return base64_encode(random_bytes(self::NUMBER_OF_RANDOM_BYTES));
61
    }
62
63
}
64