коробки такой функционал: есть Access control filter в методе behaviors.
Можно ли как то указать, что доступ к роуту разрешен, если в запросе имеется определенный параметр, который чему то равен?
как то так наверняка можно public function behaviors() { return [ 'access' => [ 'class' => \yii\filters\AccessControl::class, 'rules' => [ [ 'allow' => true, 'roles' => ['@'], 'matchCallback' => function ($rule, $action) { return Yii::$app->user->can('checkParameterAccess'); }, ], ], ], ]; } —- use yii\rbac\Rule; class ParameterAccessRule extends Rule { public $name = 'checkParameterAccess'; public function execute($user, $item, $params) { $parameterValue = Yii::$app->request->get('parameterName'); return $parameterValue === 'desiredValue'; } } —- 'components' => [ 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'rules' => [ 'checkParameterAccess' => 'app\rbac\ParameterAccessRule', ], ], ],
Случайно нет задачи сделать доступ для автора записи?
Нет, другое. У меня роут с разными параметрами (статусы), в зависимости от статуса надо пропускать того или иного пользователя
'matchCallback' => function ($rule, $action) { return условие; }
Обсуждают сегодня