2016-11-04 77 views
0

我只想知道如何使用DbManager將角色分配給yii2中的一組用戶,因爲我看過很多教程,但其中大多數都是面向提升模板和我正在使用基本模板。 他們提到常見的後端文件夾,我在基本模板中找不到 您可以給我一個教程或一些我可以遵循的指導嗎?yii2用於用戶組的基本模板角色的RBAC

感謝

+0

您可以通過以下鏈接訪問:www.youtube.com/watch?v=eFOIUeU-Y74 – CrashBurn

回答

0

看看這個頁面:http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

這將有助於您添加DbManager的RBAC。首先,您需要創建不同的角色,然後您需要爲不同的角色添加權限。

然後,當您創建用戶時,您需要爲該用戶分配一個角色,他們將擁有這些權限。

以下是創建角色和權限的文檔片段。

<?php 
namespace app\commands; 

use Yii; 
use yii\console\Controller; 

class RbacController extends Controller 
{ 
    public function actionInit() 
    { 
     $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); 
    } 
} 

此RbacController.php文件將進入您的項目的基礎中的命令文件夾。您可以通過撥打php yii rbac/init通過終端運行它。

然後,您實際上需要檢查用戶是否具有某些權限。所以,當某個用戶正在執行的操作,你可以調用像

if (\Yii::$app->user->can('createPost')) { 
    // create post 
} 

其中bassed到罐方法的字符串是,你是想查詢的權限。