Completed
Push — master ( d69705...774ae2 )
by Dmitry
03:43
created

Initer   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 141
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 6
Bugs 1 Features 0
Metric Value
wmc 1
lcom 0
cbo 1
dl 0
loc 141
ccs 2
cts 2
cp 1
rs 10
c 6
b 1
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B getTree() 0 138 1
1
<?php
2
/**
3
 * RBAC implementation for HiPanel
4
 *
5
 * @link      https://github.com/hiqdev/hipanel-rbac
6
 * @package   hipanel-rbac
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2016-2017, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hipanel\rbac;
12
13
/**
14
 * Initer for AuthManager.
15
 *
16
 * Non-obvious permissions:
17
 * - have-goods - permission to have anything, inherent to clients and resellers only.
18
 *   Serfvice staff (supports, managers) can't have anything.
19
 *
20
 * @author Andrii Vasyliev <[email protected]>
21
 */
22
class Initer extends AbstractIniter
23
{
24 13
    public function getTree()
25
    {
26
        return [
27 13
            'role:nobody' => [
28
                'nothing',
29
            ],
30
            'role:unauthorized' => [
31
                'restore-password', 'deposit',
32
            ],
33
            'role:client' => [
34
                'role:unauthorized', 'have-goods',
35
                'role:ticket.user',
36
                'role:domain.user', 'domain.pay', 'domain.push',
37
                'role:certificate.user', 'certificate.pay', 'certificate.push',
38
                'role:contact.user',
39
                'client.read', 'document.read',
40
                'role:server.user', 'server.pay',
41
                'role:account.user',
42
                'bill.read', 'plan.read',
43
            ],
44
            'role:support' => [
45
                'access-subclients', 'support',
46
                'role:ticket.manager',
47
                'role:client.support',
48
                'role:domain.user',
49
                'role:certificate.user',
50
                'contact.read',
51
                'role:server.user',
52
                'role:account.user',
53
                'plan.read',
54
            ],
55
            'role:admin' => [
56
                'role:support', 'admin',
57
                'role:server.admin',
58
            ],
59
            'role:manager' => [
60
                'role:support', 'manage',
61
                'role:document.manager', 'role:stock.manager',
62
                'role:domain.manager', 'domain.pay', 'domain.push',
63
                'role:certificate.manager', 'certificate.pay', 'certificate.push',
64
                'role:contact.user', 'contact.force-verify',
65
                'role:client.manager',
66
                'role:plan.manager',
67
                'bill.read',
68
                'server.pay', 'server.sell',
69
                'mailing.prepare', 'mailing.send',
70
            ],
71
            'role:reseller' => [
72
                'have-goods', 'deposit',
73
                'role:manager', 'role:bill.manager',
74
                'resell',
75
            ],
76
            'role:owner' => [
77
                'role:manager', 'role:bill.manager',
78
                'resell', 'own',
79
            ],
80
            'role:employee' => [
81
                'restore-password', 'deposit',
82
                'role:contact.user',
83
                'bill.read', 'client.read', 'employee.read',
84
            ],
85
            /// SUBROLES
86
            'role:domain.user' => [
87
                'domain.read', 'domain.update',
88
            ],
89
            'role:domain.manager' => [
90
                'role:domain.user', 'domain.delete',
91
            ],
92
            'role:domain.master' => [
93
                'role:domain.manager',
94
                'domain.freeze', 'domain.unfreeze',
95
                'domain.push', 'domain.force-push',
96
            ],
97
            'role:certificate.user' => [
98
                'certificate.read', 'certificate.create', 'certificate.update',
99
            ],
100
            'role:certificate.manager' => [
101
                'role:certificate.user', 'certificate.delete',
102
            ],
103
            'role:contact.user' => [
104
                'contact.read', 'contact.create', 'contact.update', 'contact.delete',
105
            ],
106
            'role:account.user' => [
107
                'account.read', 'account.create', 'account.update', 'account.delete',
108
            ],
109
            'role:server.user' => [
110
                'server.read',
111
            ],
112
            'role:server.admin' => [
113
                'role:server.user', 'server.create', 'server.update', 'server.delete',
114
            ],
115
            'role:ticket.user' => [
116
                'ticket.read', 'ticket.create', 'ticket.answer', 'ticket.close',
117
            ],
118
            'role:ticket.manager' => [
119
                'role:ticket.user', 'ticket.update', 'ticket.delete',
120
            ],
121
            'role:client.support' => [
122
                'client.read',
123
            ],
124
            'role:client.manager' => [
125
                'role:client.support', 'client.create', 'client.update', 'client.delete',
126
            ],
127
            'role:employee.manager' => [
128
                'employee.read', 'employee.create', 'employee.update', 'employee.delete',
129
            ],
130
            'role:client.impersonator' => [
131
                'client.impersonate'
132
            ],
133
            'role:bill.manager' => [
134
                'bill.read', 'bill.create', 'bill.update', 'bill.delete',
135
            ],
136
            'role:plan.manager' => [
137
                'plan.read', 'plan.create', 'plan.update', 'plan.delete',
138
            ],
139
            'role:stock.manager' => [
140
                'part.read', 'part.create', 'part.update', 'part.delete',
141
                'move.read', 'move.create', 'move.update', 'move.delete',
142
                'model.read', 'model.create', 'model.update', 'model.delete',
143
            ],
144
            'role:document.user' => [
145
                'document.read', 'document.create',
146
            ],
147
            'role:document.manager' => [
148
                'role:document.user', 'document.update', 'document.delete', 'document.generate',
149
            ],
150
            'role:document.master' => [
151
                'document.generate-all',
152
            ],
153
            'role:beta-tester' => [
154
                'test.beta',
155
            ],
156
            'role:alpha-tester' => [
157
                'role:beta-tester',
158
                'test.alpha',
159
            ],
160
        ];
161
    }
162
}
163