Passed
Push — master ( 1a7924...8ee120 )
by Julito
11:25
created

SysAnnouncementRepository::update()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 3
c 1
b 0
f 1
nc 2
nop 2
dl 0
loc 5
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Repository;
8
9
use Chamilo\CoreBundle\Entity\SysAnnouncement;
10
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
11
use Doctrine\Persistence\ManagerRegistry;
12
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
13
14
class SysAnnouncementRepository extends ServiceEntityRepository
15
{
16
    protected ParameterBagInterface $parameterBag;
17
18
    public function __construct(ManagerRegistry $registry, ParameterBagInterface $parameterBag)
19
    {
20
        parent::__construct($registry, SysAnnouncement::class);
21
        $this->parameterBag = $parameterBag;
22
    }
23
24
    public function getVisibilityList()
25
    {
26
        $hierarchy = $this->parameterBag->get('security.role_hierarchy.roles');
27
        $roles = [];
28
        array_walk_recursive($hierarchy, function ($role) use (&$roles): void {
29
            $roles[$role] = $role;
30
        });
31
32
        return $roles;
33
    }
34
35
    public function update(SysAnnouncement $sysAnnouncement, $andFlush = true): void
36
    {
37
        $this->getEntityManager()->persist($sysAnnouncement);
38
        if ($andFlush) {
39
            $this->getEntityManager()->flush();
40
        }
41
    }
42
}
43