Я использую контроль 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'],
],
],
];
}
Я хочу, чтобы страница «просмотр» была доступна только для клиентов, так как решить эту проблему?
или какова лучшая практика для этого?
Спасибо
Сюда
[
// This is the problem
'actions' => ['view'],
'allow' => true,
'roles' => ['customer'],
],
Других решений пока нет …