Я хочу создать приложение, в котором только администратор может выполнять все операции crud, но другие пользователи могут создавать и обновлять сообщения. Я нашел учебники на основе rbac, но только для расширенного шаблона, но я использую базовый шаблон. Я также следовал руководству yii2, но я не очень хорошо его понимал, как выполнение команды ./yii rbac/init console. Как мне это сделать?RBAC для базового шаблона yii2
1
A
ответ
0
первую очередь создать вспомогательный класс называется PermissionHelpers в вашей папке модели:
namespace app\models;
use Yii;
class PermissionHelpers {
public static function requireAdmin() {
if(Yii::$app->user->identity->role == 100)
{
return true;
}
else return false;
}
}
Затем обновите ваш контроллер с:
// at top with your other use
use yii\filters\AccessControl;
use app\models\PermissionHelpers;
// first function inside the class
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['privateaction1', 'privateaction2'],
'rules' => [
[
'actions' => ['privateaction1', 'privateaction2'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function($rule, $action) {
return PermissionHelpers::requireAdmin();
}
],
],
],
}
А теперь вам нужно обновить себя в БД с ролью = 100, и вы настроены.
Я использую расширенный шаблон самостоятельно, поэтому могут быть небольшие изменения в пространствах имен и т. Д. Но это должно быть довольно легко понять. Удачи!
+0
Привет @Jorgen. Затем мы можем использовать RBAC в версии yii2-basic. Это ? Потому что, читая учебник yii2-rbac, я обнаружил, что RBAC предназначен для версии yii2. –
Hi @Raj. Эта же проблема со мной тоже. Где я должен объявить DB с ролью = 100? В config/db.php? –
@NanaPartykar извините, я больше не код в yii2. – Raaz
Ok @Raj. NP. Спасибо. –