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

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

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

1 ответ

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

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, если они соответствуют запрашиваемому действию.

Другие вопросы по тегам