Assignment::getRolesArray()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 1
c 1
b 0
f 1
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace modules\rbac\models;
4
5
use Yii;
6
use yii\base\Model;
7
use yii\helpers\ArrayHelper;
8
use modules\rbac\traits\ModuleTrait;
9
use modules\rbac\Module;
10
11
/**
12
 * Class Assignment
13
 * @package modules\rbac\models
14
 *
15
 * @property object $user User
16
 * @property string|int $id Id
17
 * @property string $username Username
18
 * @property mixed $role Role
19
 * @property-read array $rolesArray
20
 * @property bool $isNewRecord Is New Record
21
 */
22
class Assignment extends Model
23
{
24
    use ModuleTrait;
25
26
    public $user;
27
    public $id;
28
    public $username;
29
    public $role;
30
    public $isNewRecord = false;
31
32
    /**
33
     * @inheritdoc
34
     * @return array
35
     */
36
    public function rules()
37
    {
38
        return [
39
            [['role'], 'safe'],
40
        ];
41
    }
42
43
    /**
44
     * @inheritdoc
45
     * @return array
46
     */
47
    public function attributeLabels()
48
    {
49
        return [
50
            'role' => Module::t('module', 'Role'),
51
        ];
52
    }
53
54
    /**
55
     * Список всех ролей
56
     * @return array
57
     */
58
    public function getRolesArray()
59
    {
60
        return ArrayHelper::map(Yii::$app->authManager->getRoles(), 'name', 'description');
61
    }
62
63
    /**
64
     * @param string|int $id
65
     * @return string
66
     */
67
    public function getRoleName($id)
68
    {
69
        $id = $id ? $id : $this->user->id;
70
        $auth = Yii::$app->authManager;
71
        $roles = $auth->getRolesByUser($id);
72
        $role = '';
73
        foreach ($roles as $item) {
74
            $role .= $item->description ? $item->description . ', ' : $item->name . ', ';
75
        }
76
        return chop($role, ' ,');
77
    }
78
79
    /**
80
     * @param string|int $id
81
     * @return mixed|null
82
     */
83
    public function getUserRoleName($id)
84
    {
85
        $id = $id ? $id : $this->user->id;
86
        if ($role = Yii::$app->authManager->getRolesByUser($id)) {
87
            return ArrayHelper::getValue($role, function ($role) {
88
                foreach ($role as $key => $value) {
89
                    return $value->description;
90
                }
91
                return null;
92
            });
93
        }
94
        return null;
95
    }
96
97
    /**
98
     * Получаем роль пользователя
99
     * @param string|int $id
100
     * @return mixed|null
101
     */
102
    public function getRoleUser($id)
103
    {
104
        $id = $id ? $id : $this->user->id;
105
        if ($role = Yii::$app->authManager->getRolesByUser($id)) {
106
            return ArrayHelper::getValue($role, function ($role) {
107
                foreach ($role as $key => $value) {
108
                    return $value->name;
109
                }
110
                return null;
111
            });
112
        }
113
        return null;
114
    }
115
}
116