Completed
Push — master ( 40ca5b...45a624 )
by Jan
06:24
created

UserFixtures::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
namespace App\DataFixtures;
4
5
use App\Entity\UserSystem\User;
6
use Doctrine\Bundle\FixturesBundle\Fixture;
7
use Doctrine\Common\Persistence\ObjectManager;
8
use Doctrine\ORM\EntityManagerInterface;
9
use ReflectionClass;
10
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
11
12
class UserFixtures extends Fixture
13
{
14
    protected $encoder;
15
    protected $em;
16
17
    public function __construct(UserPasswordEncoderInterface $encoder, EntityManagerInterface $entityManager)
18
    {
19
        $this->em = $entityManager;
20
        $this->encoder = $encoder;
21
    }
22
23
    public function load(ObjectManager $manager)
24
    {
25
        //Reset autoincrement
26
        $this->em->getConnection()->exec('ALTER TABLE `users` AUTO_INCREMENT = 1;');
27
28
        $anonymous = new User();
29
        $anonymous->setName('anonymous');
30
        $anonymous->setGroup($this->getReference(GroupFixtures::READONLY));
31
32
        $manager->persist($anonymous);
33
34
        $admin = new User();
35
        $admin->setName('admin');
36
        $admin->setPassword($this->encoder->encodePassword($admin, 'test'));
37
        $admin->setGroup($this->getReference(GroupFixtures::ADMINS));
38
        $manager->persist($admin);
39
40
        $user = new User();
41
        $user->setName('user');
42
        $user->setNeedPwChange(false);
43
        $user->setFirstName('Test')->setLastName('User');
44
        $user->setPassword($this->encoder->encodePassword($user, 'test'));
45
        $user->setGroup($this->getReference(GroupFixtures::USERS));
46
        $manager->persist($user);
47
48
        $manager->flush();
49
    }
50
}
51