ChoiceHelper::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Zikula package.
7
 *
8
 * Copyright Zikula - https://ziku.la/
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Zikula\UsersBundle\Helper;
15
16
use Symfony\Component\DependencyInjection\Attribute\Autowire;
17
use Zikula\UsersBundle\UsersConstant;
18
19
class ChoiceHelper
20
{
21
    private array $roleHierarchy;
22
23
    public function __construct(
24
        #[Autowire(param: 'security.role_hierarchy.roles')]
25
        array $roleHierarchy
26
    ) {
27
        $this->roleHierarchy = $roleHierarchy;
28
    }
29
30
    public function getRoles(): array
31
    {
32
        $systemRoles = [
33
            'User' => 'ROLE_USER',
34
            'Editor' => 'ROLE_EDITOR',
35
            'Administrator' => 'ROLE_ADMIN',
36
            'Super administrator' => 'ROLE_SUPER_ADMIN',
37
        ];
38
39
        $definedRoles = [];
40
        array_walk_recursive($this->roleHierarchy, static function ($role) use (&$roles) {
41
            $definedRoles[$role] = $role;
0 ignored issues
show
Comprehensibility Best Practice introduced by
$definedRoles was never initialized. Although not strictly required by PHP, it is generally a good practice to add $definedRoles = array(); before regardless.
Loading history...
42
        });
43
44
        $roles = $systemRoles;
45
        foreach ($definedRoles as $role) {
46
            if (!in_array($role, $roles, true)) {
47
                $roles[$role] = $role;
48
            }
49
        }
50
51
        return $roles;
52
    }
53
54
    public function getActivatedValues(): array
55
    {
56
        return [
57
            'Active' => UsersConstant::ACTIVATED_ACTIVE,
58
            'Inactive' => UsersConstant::ACTIVATED_INACTIVE,
59
            'Pending' => UsersConstant::ACTIVATED_PENDING_REG,
60
        ];
61
    }
62
}
63