Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
66.67% covered (warning)
66.67%
2 / 3
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Permissions
66.67% covered (warning)
66.67%
2 / 3
66.67% covered (warning)
66.67%
2 / 3
3.33
0.00% covered (danger)
0.00%
0 / 1
 add
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 has
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray;
6
7class Permissions
8{
9    protected array $permissions = [
10        'superuser' => [
11            'superuser',
12            'admin',
13            'editor',
14            'panel',
15            'edit-settings',
16            'edit-users',
17            'edit-nodes',
18            'edit-blocks',
19            'edit-menus',
20            'manage-menus',
21            'authenticated',
22        ],
23        'admin' => [
24            'admin',
25            'editor',
26            'panel',
27            'edit-users',
28            'edit-nodes',
29            'edit-blocks',
30            'edit-menus',
31            'authenticated',
32        ],
33        'editor' => [
34            'editor',
35            'panel',
36            'edit-nodes',
37            'edit-blocks',
38            'authenticated',
39        ],
40    ];
41
42    public function add(string $role, string $permission)
43    {
44        $this->permissions[$role][] = $permission;
45    }
46
47    public function has(string $role, string $permission): bool
48    {
49        return in_array($permission, $this->permissions[$role] ?? [], true);
50    }
51
52    public function get(string $role): array
53    {
54        return $this->permissions[$role] ?? [];
55    }
56}