2016-08-16 9 views
0

フロントエンドにrbacを実装し、バックエンドを別にしたいと思います。 私はバックエンドで管理者のためのテーブルを持っており、管理者ユーザはこのテーブルで作業します。また、通常のユーザーのためのテーブルと彼らはこのテーブル(ログイン、サインアップなど)で動作します。yii2-rbacをフロントエンドとバックエンドで別々に実装するにはどうすればいいですか?

rbac関連のテーブル(auth_assignment)では、 'user_id'フィールドは別のテーブル(userまたはadmin)から評価されなければならず、adminテーブルとusersテーブルの両方から値を取得することはできません。

フロントエンドとバックエンドに別々のrbacを実装することは可能ですか? はいの場合?

答えて

0

ことが可能です。 RBAC DbManagerテーブルは、2つのRBACコンポーネント(フロントエンド用とバックエンド用)を別々のテーブルで準備できるように構成できます。

これは、割り当てのための属性です:

public $assignmentTable = '{{%auth_assignment}}'; 
+0

answere.butに感謝します。この属性はどこですか?どのファイルですか? –

+1

名前空間 'yii \ rbac \ DbManager' - ' \ vendor \ yiisoft \ yii2 \ rbac \ DbManager.php' – Bizley

0

このリンクをご覧ください。そのRBACのために非常に便利です。彼らはDB上のベースである場合に

https://github.com/yiisoft/yii2/blob/master/docs/guide/security-authorization.md

RBACのCompoNetを、共通部分にベース..です一般的に、あなたは一般的なモデルを使用して、関連dbテーブルを共有...

あなたは、コンポーネントのセクションで、この要素を宣言することができますco.jpのmain.phpを共通の領域で実行すると、両方の環境(フロントエンド、バックエンド)で正しく共有されます。

例:共通/設定/ main.php

'components' => [ 
    ..... 
    'authManager' => [ 
     'class' => 'yii\rbac\DbManager', 
     'cache' => 'cache', 
      .... 
    ], 

彼らは自然にフロントエンドとバックエンドの間で共有することができ、この平均..

+0

それはRBACの割り当てのための2つの異なる 'user'テーブルを使用する必要がありますので、この場合は設定を共有することはできません。 – Bizley

関連する問題