我想创建一个只有admin可以执行所有crud操作但其他用户只能创建和更新帖子的应用程序。我确实找到了基于rbac的教程,但仅用于高级模板,但我使用的是基本模板。我也遵循yii2指南,但我不太理解它像执行./yii rbac / init console命令。我该怎么做?
答案 0 :(得分:0)
首先在模型文件夹中创建一个名为PermissionHelpers的Helper类:
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的DB中更新自己,并且你已经设置好了。
我自己使用高级模板,因此命名空间可能会有一些小的变化等等。但要弄明白这一点应该相当容易。祝你好运!