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