Yii2 RbacController示例

RbacController 示例:

<?php
namespace consolecontrollers;
use Yii;
use yiiconsoleController;
class RbacController extends Controll
{
    public function actionInit()
    {
        $auth = Yii::$app->authManager;

        // 添加“createPost”权限
        $createPost = $auth->createPermission('createPost');
        $createPost->description = 'Create a post';
        $auth->add($createPost);

        // 添加 "updatePost" 权限
        $updatePost = $auth->createPermission('updatePost');
        $updatePost->description = 'Update post';
        $auth->add($updatePost);

        // 添加 "author" 角色并给与 "createPost" 权限
        $author = $auth->createRole('author');
        $auth->add($author);
        $auth->addChild($author, $createPost);

        // 添加 "admin" 角色并给与 "updatePost" 权限
        // 和 "author" 权限
        $admin = $auth->createRole('admin');
        $auth->add($admin);
        $auth->addChild($admin, $updatePost);
        $auth->addChild($admin, $author);

        // 为用户指派角色.其中1和2是由 IdentityInterface::getId() 返回的id (user 表)
        // 通常在 user 模型中实现这个函数.$auth->assign($author, 2);
        $auth->assign($admin, 1);
    }
}

a

原文地址:https://www.cnblogs.com/chrdai/p/8178631.html