Роли и пользователи Yii2

Могу ли я статически определить роли в authManager (в массиве defaultRoles в конфигурации) и назначить их пользователям, чтобы правила поведения определяли доступ к действиям?
Поскольку у меня есть определенные роли, я не хочу использовать auth_assignment и auth_item и...
Предположим, что я создаю столбец в пользовательской таблице для роли, и у каждого пользователя есть одна роль, а роли определяются в файле конфигурации.

На самом деле я хочу создать правила доступа, такие как «admin», для пользователей с правами администратора (где yii говорит «@» для аутентифицированного пользователя и «?» для гостя).


person Mehrdad    schedule 11.12.2015    source источник
comment
ты пробовал себя или нет.   -  person Amitesh Kumar    schedule 11.12.2015
comment
Я добавляю администратора в defaultRoles, но не знаю, как сказать yii, чтобы проверить поле моей роли пользователя. @AmiteshKumar   -  person Mehrdad    schedule 11.12.2015
comment
прочитайте этот yiiframework.com/doc-2.0/guide-structure-filters. html   -  person Amitesh Kumar    schedule 11.12.2015
comment
У тебя есть ответ или нет @Mehrdad   -  person Nana Partykar    schedule 16.12.2015


Ответы (1)


Сначала создайте свои роли где-нибудь, например в параметрах, тогда функция поведения сможет легко управлять аутентификацией.

public function behaviors()
{
    return [
        'access' => [
            'class'  => AccessControl::className(),
            'except' => [''],//or only
            'rules'  => [
                [
                    'allow'         => true,
                    'actions'       => ['deletepic', 'regenerate'],
                    'matchCallback' => function ($rule, $action) {
                        return (myAuth(['root','admin']));
                    }
                ],
            ],
        ],
    ];
}

myAuth() проверит текущую роль пользователя и вернет true, если эта роль соответствует запрошенному действию.

person Mehrdad    schedule 18.12.2015