RBAC基本yii2模板(RBAC for basic yii2 template)

2019-10-21 11:09发布

我想创建只有管理员可以执行所有的CRUD操作,但其他用户只能创建和更新的帖子的应用程序。 我没有找到基于RBAC但只用于高级模板,但我使用的基本模板的教程。 我也跟着yii2指导,但我不懂得这个像执行./yii RBAC /初始化控制台命令。 我该怎么做?

Answer 1:

首先创造了一个辅助类中调用的模型文件夹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();
                        }
                ],
            ],
        ],
}

现在你需要更新自己在DB与角色= 100,和你设置。

我使用的是高级模板自己,所以可能会有小的变化对命名空间和这样的。 但它应该是相当容易弄清楚。 祝好运!



文章来源: RBAC for basic yii2 template
标签: php yii2 rbac