RBAC用于基本的yii2模板

时间:2014-12-18 09:13:07

标签: php yii2 rbac

我想创建一个只有admin可以执行所有crud操作但其他用户只能创建和更新帖子的应用程序。我确实找到了基于rbac的教程,但仅用于高级模板,但我使用的是基本模板。我也遵循yii2指南,但我不太理解它像执行./yii rbac / init console命令。我该怎么做?

1 个答案:

答案 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中更新自己,并且你已经设置好了。

我自己使用高级模板,因此命名空间可能会有一些小的变化等等。但要弄明白这一点应该相当容易。祝你好运!

相关问题