Bootstrap::rulesRoles()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 8
c 1
b 0
f 1
dl 0
loc 10
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace modules\rbac;
4
5
use Yii;
6
7
/**
8
 * Class Bootstrap
9
 * @package modules\rbac
10
 */
11
class Bootstrap
12
{
13
    public function __construct()
14
    {
15
        $this->registerTranslate();
16
        $this->registerRules();
17
    }
18
19
    /**
20
     * Translate
21
     */
22
    protected function registerTranslate()
23
    {
24
        $i18n = Yii::$app->i18n;
25
        $i18n->translations['modules/rbac/*'] = [
26
            'class' => 'yii\i18n\PhpMessageSource',
27
            'basePath' => '@modules/rbac/messages',
28
            'fileMap' => [
29
                'modules/rbac/module' => 'module.php',
30
            ],
31
        ];
32
    }
33
34
    /**
35
     * Rules
36
     */
37
    protected function registerRules()
38
    {
39
        $urlManager = Yii::$app->urlManager;
40
        $urlManager->addRules($this->rules());
41
    }
42
43
    /**
44
     * @return array
45
     */
46
    protected function rules()
47
    {
48
        $rules = [];
49
        array_push(
50
            $rules,
51
            $this->rulesRoles(),
52
            $this->rulesPermissions(),
53
            $this->rulesAssign(),
54
            $this->rulesDefault()
55
        );
56
        return $rules;
57
    }
58
59
    /**
60
     * @return array
61
     */
62
    protected function rulesRoles()
63
    {
64
        return [
65
            'class' => 'yii\web\GroupUrlRule',
66
            'routePrefix' => 'rbac/roles',
67
            'prefix' => 'rbac',
68
            'rules' => [
69
                'roles' => 'index',
70
                'role/<id:[\w\-]+>/<_a:[\w\-]+>' => '<_a>',
71
                'role/<_a:[\w\-]+>' => '<_a>',
72
            ],
73
        ];
74
    }
75
76
    /**
77
     * @return array
78
     */
79
    protected function rulesPermissions()
80
    {
81
        return [
82
            'class' => 'yii\web\GroupUrlRule',
83
            'routePrefix' => 'rbac/permissions',
84
            'prefix' => 'rbac',
85
            'rules' => [
86
                'permissions' => 'index',
87
                'permission/<id:[\w\-]+>/<_a:[\w\-]+>' => '<_a>',
88
                'permission/<_a:[\w\-]+>' => '<_a>',
89
            ],
90
        ];
91
    }
92
93
    /**
94
     * @return array
95
     */
96
    protected function rulesAssign()
97
    {
98
        return [
99
            'class' => 'yii\web\GroupUrlRule',
100
            'routePrefix' => 'rbac/assign',
101
            'prefix' => 'rbac/assign',
102
            'rules' => [
103
                '' => 'index',
104
                '<id:\d+>/<_a:[\w\-]+>' => '<_a>',
105
            ],
106
        ];
107
    }
108
109
    /**
110
     * @return array
111
     */
112
    protected function rulesDefault()
113
    {
114
        return [
115
            'class' => 'yii\web\GroupUrlRule',
116
            'routePrefix' => 'rbac/default',
117
            'prefix' => 'rbac',
118
            'rules' => [
119
                '' => 'index',
120
                '<_a:[\w\-]+>' => '<_a>',
121
            ],
122
        ];
123
    }
124
}
125