2017-10-19 8 views
0

私のシステムとこの拡張機能の他のユーザーがうまく動作する権限を作成しました。例として私はページモジュールの許可を設定しました。私は以下のコードを使用しました。mdmsoft/yii2-adminのaccesscontrolのアクセス許可を設定する方法

if(\Yii::$app->user->can('page_module')){}else{ 
     throw new ForbiddenHttpException("You are not authorized to perform this action.", 403); 
    } 

私には制限があります。私はこれらの行を拡張コントローラで使用していましたが、制限されていましたが、拡張機能を更新するとコードが削除されるため脆弱です。そして、私はすべてのコントローラを拡張し、許可をどのように設定するのか理解できませんでした。私に知られていない別の方法がある場合。

+0

必要な機能については、モジュールクラスをクラスで拡張してクラスを参照する必要があります。拡張機能を更新する際には、コードを触れずに機能性を有効にしてください – scaisEdge

答えて

1

mdmsoft/yii2-admin拡張を設定すると、そのアクセス権を付与するまですべてのルートへのアクセスが拒否されます。ハードコーディングではなく、yii::$app->user-can('permission')は、mdmsoft/yii2-adminをインストールした唯一の理由であるはずのRBACを利用します。

アクセス設定 うまくいけば、Yii2の高度なテンプレートを使用してください。最初 、セットアップあなたのfrontend/config/main.phpでのアクセスなど:

'as access' => [ 
    //This access behavior must be in frontend and backend. 
    //The 'as access' behavior will interfere with migrations if put in common. 
    'class' => 'mdm\admin\components\AccessControl', 
    'allowActions' => [ 
     'site/*', //Allow by default to all. 
     'debug/*', 
     //'admin/*', //Leave commented out, unless setting up admin roles initially. 
     //Allow guests to do: 
     'ticket/ticket/index', 
    ] 
], 

セットアップRBAC

RBAC階層はこのようなものです:

USER-> Roles-> Permissions->ルート

-Joey

--Admin_Role

---- Admin_Permission

--------アプリ/ controller1/*

--------アプリ/コントローラ2 /ビュー

セットアップRBAC

  1. まず、あなたのルートを追加します。
  2. 権限を追加します。
  3. 権限にルートを割り当てます。
  4. 役割を作成します。
  5. 役割に権限を割り当てます。
  6. ユーザーに役割を割り当てます。
関連する問題