Completed
Push — master ( 5b873e...d824de )
by Alexey
02:27
created

Assignment::getUserRoleName()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

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