Yii2 rbac 権限制御メニューのメニュー例チュートリアル、yii2rbac_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:53:32
オリジナル
765 人が閲覧しました

Yii2 rbac 権限制御メニューのサンプル チュートリアル、yii2rbac

前回の記事では、yii2 の完璧なバックエンドの構築と rbac 権限制御の実装サンプル チュートリアルを紹介しました。これは、yii2 のバックグラウンド構築と rbac 権限制御を完璧に実現しました。この記事は上記を改善および補足するものであるため、まだ実装されていない場合は、まず上記を読んでからこの記事を参照してください。

最終メニューの権限を制御する方法が理解できず、理解できないと報告している人もいます。さらに、まだ完了していないようで、ふざけています。実際には、それほど包括的なものではありません。今日は、メニューに対する完璧な権限を実現する方法を見てみましょう。まずは主な内容を記載しますので、必要ない方は読まなくても大丈夫です。

メニューテーブルを使用してメニューを追加します

左側のメニュー結果管理は完璧に表示されています

メニューの前にある小さなアイコンをカスタマイズして表示します

メニューの表示/非表示を制御する方法

ページ操作ボタンは勝手に表示されません

グリッドビューには操作権限のあるボタンのみが表示されます

それでは、権限制御メニューについて他にご要望がございましたら、以下にメッセージを残してください。一緒に話し合ってコミュニケーションをとりましょう。

まず全体的な効果をプレビューするために写真を見てください。そうしないと、学習意欲を刺激することができません。

まず、ルーティング ページ /dmin/route/index にアクセスし、左側にあるものをできるだけ選択してから右側に移動し、現在のユーザーに関連するアクセス許可を忘れずに割り当てます。

次に、menu list/admin/menu/index にアクセスし、[メニューの追加] をクリックします。この時点でアクセス権限がない場合は、現在のユーザーが設定ファイルのアクセス ファイルにある権限にアクセスできるように一時的に許可してください。 、アクセス許可を追加した後、時間が来たら必ずアクセス設定を削除することを忘れないでください。そうしないと、アクセス許可の有効期限が切れても私に戻ってこないでください。

ここではまず、上の図で赤くマークされた 4 つのフィールドに入力します

例: 第 1 レベルのメニュー「権限管理」を追加したいとします

これは第一レベルのメニューであるため、ここでは「/admin/default/index」を選択します。 、ルーティング ページにアクセスし、左側のボタンをクリックして、右側の選択を右に移動します。

マッピングは実際には並べ替えの問題です。たとえば、2 つのメニューを追加すると、マッピング値 1 のメニューが一番上にあり、マッピング値 2 のメニューが 1 の下に表示されます。ここでは数値 1 を入力します。

「データ」項目については後ほど説明します。

先ほどご紹介した方法で追加してみましょう

セカンダリメニュー「Permission Control」を追加する例を示します。

ここで必要なのは、親名に、先ほど正常に追加した第 1 レベルの名前「Permission Management」を入力することだけです。他はすべて通常通りです。操作方法がわからない場合は、もう一度読んでください。権限管理のすべてのメニューをここに追加すると、次に必要になるため、さらに練習することができます。

メニューを追加しました。

次のステップを見て、前に構築した背景フレームワークを使用して表示しましょう。

リーリー

とても簡単なことではありませんか?なぜ私のものには dmstr がないのでしょうか? 申し訳ありませんが、何度も言いますが、このメニューを組み合わせる前に、まず上記を読む必要があります。

OK、ページを更新してメニューを表示します。必要な機能はまだ完全には実装されていませんが、これでメニューが表示されるはずです。

次に、フォーカスと難易度を入力します。メニューの前に小さなアイコンを実装し、メニューを完了してコントロールを非表示にする必要があります。

最初にメニューを作成したとき、入力されていない唯一のオプションが「データ」だったことを覚えていますか?後の操作の便宜のために、ここでアイコンと非表示のオプションをまとめて記入します。最初のスクリーンショットにある「バックエンド ユーザー管理」の 2 番目のメニューを例として、変更を加えてみましょう。スクリーンショットを撮って、メニューの現在のステータスを確認してください

新しいアイデアがある場合は、後で修正するので、更新ページの「データ」項目に必ず次のコードを入力してください。

リーリー

はい、この「データ」項目に入力するのは JSON コードです。次に、コードを誰でも読みやすくするために、コードに少し変更を加えます。ここのコールバックはページに直接書き込まれます。パッケージ化と最適化を続行できます。

リーリー

はい、正しく読みました。コードは少し長いので、簡単に分析しましょう。実際、ここでの $callback メソッドは、上で追加したメニューの「データ」項目のみを分析します。アイコンと表示をそれぞれ判断し、現在のメニューに追加したことを確認するのは難しくありません。

到此,我们费了一番波折终于实现菜单加icon和设置菜单的隐藏。如果你有其他的属性需要进行配置,此处仍然可以继续单独配置。

现在,我们还有两个任务仍待完成,要完成接下来的两个任务,为了大家的方便,建议你的项目可以自定义配置gii模版,不支持自定义gii模板的可以参考自定义gii模版 当你发现我们后面需要做的功能,我觉得你会赞叹我们这里的操作。

为了方便操作,我们这里增加一个测试表test,我们先用未做修改的gii模版生成一份model+curd。我们先把test/*的所有权限分配给当前登录的用户,并添加一条数据。打开/test我们可以正常看到下面的截图,注意图中的两个标记。

然后我们打开test/index.php文件,对标记的两个地方进行如下修改

use mdm\admin\components\Helper; 
<&#63;php 
//没有创建权限不显示按钮 
if(Helper::checkRoute('create')) { 
echo Html::a('Create Test', ['create'], ['class' => 'btn btn-success']); 
} &#63;> 
<&#63;= GridView::widget([ 
// ...... 
'columns' => [ 
// ...... 
[ 
'class' => 'yii\grid\ActionColumn', 
'template' => Helper::filterActionColumn('{view}{update}{delete}'), 
], 
], 
]); &#63;>
ログイン後にコピー

现在我们刷新下页面/test再看看,好像没什么变化嘛。别急,我们现在撤销当前用户的/test/create 权限和/test/update权限,然后你在刷新下页面看看效果,我们截图看看。

也就是说我们没有权限的按钮消失了,当你手动访问/test/create的时候你会发现也会提醒你没有权限。

如果你的gii模板是自定义的,相信你会迅速在其生成的模板中所有的操作上添加权限控制的,是不是很happy

最后,我们的菜单menu关于权限控制的讲解基本也就结束了,长篇大论,仔细回想起来也没多少东西,倒是希望能帮到你一二

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1123823.htmlTechArticleYii2 rbac权限控制之菜单menu实例教程,yii2rbac 在上篇文章给大家介绍了yii2搭建完美后台并实现rbac权限控制实例教程中完美实现了yii2的后台搭...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート