Лучшая практика использования контроля доступа с RBAC Yii 2

Я использую контроль RBAC в своем приложении, обычно я использую Yii::$app->user->can('permission'),
Но у меня проблемы, когда я объединяю Контроль доступа с RBAC, он не работает. Например, мой код:

public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'ruleConfig' => [
'class' => AccessRule::className(),
],
'only' => ['test', 'view', 'index', 'ajaxdatevehicle', 'price_list', 'ajax_suggest_area', 'view-admin'],
'rules' => [
[
'actions' => ['test', 'view', 'index', 'ajaxdatevehicle', 'price_list', 'ajax_suggest_area', 'view-admin'],
'allow' => false,
'roles' => [
'?',
],
],
[
'actions' => ['test', 'view', 'index', 'ajaxdatevehicle', 'price_list', 'ajax_suggest_area', 'view-admin'],
'allow' => true,
'roles' => [
'@',
],
],
[
'actions' => ['index'],
'allow' => true,
'roles' => ['?'],
],
[
// This is the problem
'actions' => ['view'],
'allow' => true,
'roles' => [
'?',
User::ROLE_CUSTOMER,
Yii::$app->user->can('customer'),
],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
];
}

Я хочу, чтобы страница «просмотр» была доступна только для клиентов, так как решить эту проблему?

или какова лучшая практика для этого?

Спасибо

1

Решение

Сюда

   [
// This is the problem
'actions' => ['view'],
'allow' => true,
'roles' => ['customer'],
],
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]