Здравствуйте. Мне нужно создать правило и прикрепить его к Permission. Я не нашел, в каком именно файле прописывать само правило, поэтому кинул его в Models с namespace app\components\rbac. В контроллере я его подключаю (пытаюсь): use app\components\rbac\PostRule;
На что мне говорят, что такой класс не найден. Что я недопонял или не так делаю?
public function actionUpdate($id)
{
if (!\Yii::$app->user->can('updateOwnProfile', ['profileId' => \Yii::$app->user->id])) {
throw new ForbiddenHttpException('Access denied');
}
// ...
}
Максим, вот раз 10 перечитал, команда rbac/init не выполняется с ошибкой unknown command, а папки rbac или app/rbac в basic шаблоне наблюдается. Печально всё это.
66demon666, зачем вам внедрять его в Yii? Пишите на php и хоть где используйте. Просто вы привыкли работать только с Yii или другим фреймворком. Написать можно обычный класс и репозиторий. Делаете запрос к серверу или в базу через этот репозиторий и проверяете есть ли такое разрешение. RBAC по сути то же и делает. Просто он жёстко завязан на Yii и без Yii его не получится использовать. Да и он очень универсален. Иногда требуется более сложная логика, где RBAC Yii сделает лишний геморой.
Фреймворк вообще должен отвечать за базовые вещи, контроллер, запросы и так далее. А вот доменный слой весь ваш. И тут вам никто не запрещает делать как вам нужно без использования фреймворка. Вы можете легко выбросить фреймворк, настроить другой поменяв контроллеры и виды. И продолжать работу.