AdminCreator   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 7
Bugs 0 Features 5
Metric Value
wmc 3
c 7
b 0
f 5
lcom 1
cbo 4
dl 0
loc 48
ccs 0
cts 23
cp 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A create() 0 20 2
1
<?php
2
namespace AppBundle\Services;
3
4
use AppBundle\Entity\User;
5
use Symfony\Bridge\Doctrine\RegistryInterface;
6
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
7
8
/**
9
 * Class AdminCreator
10
 * @package AppBundle\Services
11
 */
12
class AdminCreator
13
{
14
    /**
15
     * @var RegistryInterface
16
     */
17
    private $doctrine;
18
    /**
19
     * @var UserPasswordEncoderInterface
20
     */
21
    private $userPasswordEncoder;
22
23
    /**
24
     * @param RegistryInterface $doctrine
25
     * @param UserPasswordEncoderInterface $userPasswordEncoder
26
     */
27
    public function __construct(RegistryInterface $doctrine, UserPasswordEncoderInterface $userPasswordEncoder)
28
    {
29
        $this->doctrine = $doctrine;
30
        $this->userPasswordEncoder = $userPasswordEncoder;
31
    }
32
33
    /**
34
     * @param $email
35
     * @param $password
36
     * @param $firstName
37
     * @param $lastName
38
     */
39
    public function create($email, $password, $firstName, $lastName)
40
    {
41
        $role = User::ROLE_ADMIN;
42
43
        $em = $this->doctrine->getManager();
44
        $user = $em->getRepository('AppBundle:User')->findBy(['email' => $email]);
45
        if (!$user)
46
            $user = new User();
47
        else $user = $user[0];
48
49
        $pass = $this->userPasswordEncoder->encodePassword($user, $password);
50
        $user->setEmail($email);
51
        $user->setFirstName($firstName);
52
        $user->setLastName($lastName);
53
        $user->setPassword($pass);
54
        $user->setRole($role);
55
        $user->setIsActive(true);
56
        $em->persist($user);
57
        $em->flush();
58
    }
59
}