yii \ rbac \ DbManager设置

时间:2014-09-23 20:49:49

标签: php yii2 rbac

尝试为Yii2设置DbManager。关于php版本有很多线程,但是关于数据库版本并不多。

我所知道的:

第1步:迁移脚本

./yii migrate --migrationPath=@yii/rbac/migrations/

第2步:配置

...
'authManager' => [
    'class' => 'yii\rbac\DbManager',
    'defaultRoles' => ['admin', 'user', 'guest'],
],
...

第3步:设置角色/规则

????

1 个答案:

答案 0 :(得分:2)

    $auth = Yii::$app->authManager;

    // add "createPost" permission
    $createPost = $auth->createPermission('createPost');
    $createPost->description = 'Create a post';
    $auth->add($createPost);

    // add "updatePost" permission
    $updatePost = $auth->createPermission('updatePost');
    $updatePost->description = 'Update post';
    $auth->add($updatePost);

    // add "author" role and give this role the "createPost" permission
    $author = $auth->createRole('author');
    $auth->add($author);
    $auth->addChild($author, $createPost);

    // add "admin" role and give this role the "updatePost" permission
    // as well as the permissions of the "author" role
    $admin = $auth->createRole('admin');
    $auth->add($admin);
    $auth->addChild($admin, $updatePost);
    $auth->addChild($admin, $author);

    // Assign roles to users. 1 and 2 are IDs returned by IdentityInterface::getId()
    // usually implemented in your User model.
    $auth->assign($author, 2);
    $auth->assign($admin, 1);

http://www.yiiframework.com/doc-2.0/guide-security-authorization.html