Completed
Push — Recipes ( 43b996...9c2236 )
by Laurent
03:16
created

LoadUserData::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * LoadUserData Données User de l'application GLSR.
4
 *
5
 * PHP Version 7
6
 *
7
 * @author    Quétier Laurent <[email protected]>
8
 * @copyright 2018 Dev-Int GLSR
9
 * @license   http://opensource.org/licenses/gpl-license.php GNU Public License
10
 *
11
 * @version GIT: $Id$
12
 *
13
 * @see https://github.com/Dev-Int/glsr
14
 */
15
16
namespace App\DataFixtures;
17
18
use Doctrine\Bundle\FixturesBundle\Fixture;
19
use Doctrine\Common\Persistence\ObjectManager;
20
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
21
use App\Entity\User;
22
23
/**
24
 * LoadUser Data.
25
 *
26
 * @category DataFixtures
27
 */
28
class LoadUserData extends Fixture
29
{
30
    protected $encoder;
31
    protected $users = [
32
        [
33
            'username' => 'Admin',
34
            'email' => 'admin@locahost',
35
            'password' => 'adminadmin',
36
            'enable' => true,
37
            'admin' => true,
38
            'assistant' => false,
39
        ],
40
        [
41
            'username' => 'Assistant',
42
            'email' => 'assistant@locahost',
43
            'password' => 'assistant',
44
            'enable' => true,
45
            'admin' => false,
46
            'assistant' => true,
47
        ],
48
    ];
49
50
    public function __construct(UserPasswordEncoderInterface $encoder)
51
    {
52
        $this->encoder = $encoder;
53
    }
54
55
    /**
56
     * Load data fixtures with the passed EntityManager.
57
     *
58
     * @param ObjectManager $manager
59
     */
60
    public function load(ObjectManager $manager)
61
    {
62
        foreach ($this->users as $key => $userData) {
63
            $userAdmin = new User();
64
            $password = $this->encoder->encodePassword($userAdmin, $userData['password']);
65
            $userAdmin->setUsername($userData['username'])
66
                ->setEmail($userData['email'])
67
                ->setEnabled($userData['enable'])
68
                ->setAdmin($userData['admin'])
69
                ->setAssistant($userData['assistant'])
70
                ->setPassword($password);
71
    
72
            $manager->persist($userAdmin);
73
            $order = $key + 1;
74
            $this->addReference('user-' . $order, $userAdmin);
75
        }
76
        $manager->flush();
77
    }
78
}
79