ホームページ  >  記事  >  php教程  >  Yii2 rbac 権限制御ルール チュートリアルの詳細な説明、yii2rbac

Yii2 rbac 権限制御ルール チュートリアルの詳細な説明、yii2rbac

WBOY
WBOYオリジナル
2016-07-06 14:24:551178ブラウズ

Yii2 rbac パーミッション制御ルールのチュートリアル、yii2rbac の詳細な説明

Yii2 のバックエンドのセットアップと rbac パーミッション制御の実装に関する以前の完全なサンプル チュートリアルで、ルール テーブルが何をするのか、そしてなぜそれが行われるのか疑問に思ったことはないだろうか。が入っています プロセス全体でこのテーブルに触れませんでしたか?

信じてください。Baidu や Google を試してみて、最終的には竹かごから水を汲み出そうとするだけです。この部分で説明する内容はほとんどありません。

一般的な権限システムについては、ルールがなくても、以前に作成した rbac で十分であることが多いと思います。

この謎のルールがどうなっているのか、公式サイトの例を使って具体的な操作チュートリアルをしていきます!

需要に応じて:

記事システムには管理者と一般ユーザーがおり、管理者は記事に対するあらゆる操作を行うことができますが、作成した記事を変更できるのは一般ユーザーのみであることに注意してください。記事の変更が許可されていないという意味でも、すべての記事を変更することが許可されているという意味でもありません。

yii2 rbac ルールの実装方法を見てください。焦点は、このルールの使用方法を全員に教えることと、多くの人々の心の問題を解決することです。

ルールを追加する前に、yiirbacRule クラスの実行メソッドを実装する必要があります。

リーリー

その後、バックグラウンド ルール リスト (/admin/rule/index) に移動してルールを追加できます。具体的な追加方法については、以下のスクリーンショットを参照してください

上記の手順でクラス名の追加に失敗する人が多いことに注意してください。ArticleRule ファイルが配置されている場所に名前空間を追加することを忘れないでください。

3 番目のステップを見てみましょう。これも間違いを犯しやすい場所です。このチュートリアルに注目してください。この先には大きなエネルギーが待っています。

アクセス権限リスト (/admin/permission/index) に新しい権限を追加しました。この権限は記事を変更するためのものであり、ユーザーのロールに割り当てられます。

ここで重大な警告があることに注意してください。ここで新しく追加された権限によって制御されるルート、つまり記事の更新操作 (/article/update) は現在のユーザーに 1 回だけ割り当てられる可能性があります。ロールまたはユーザーに繰り返し割り当てられているルールは無効であり、失敗の理由は上書きです。

この時点で、記事の更新ページ (/article/update/1) を再度更新すると、明らかに 403 アクセス禁止プロンプトが直接表示されます。これは、追加したルールが有効になったことを意味します。現時点で反映されない場合は、上記2点を確認してみてください!

次に、ArticleRule::execute メソッドにビジネス ロジックを実装します。以下を参照してください。

リーリー

最後のステップは、実装したルール認証が機能したかどうかを確認することです。

参考のため、テスト手順は次のとおりです:

1. 現在のユーザーが記事を作成するときは、現在の記事の作成者を忘れずに記録してください。デフォルトは User::ROLE_ADMIN です。


2. 一般ユーザーを作成して記事を作成します

現在の記事の作成者も記録する必要があります。

3. これら 2 つの記事を変更するには、管理者アカウントと一般ユーザーを使用してシステムにログインします。結論として、管理者は両方の記事を変更でき、一般ユーザーは変更のみ可能です。自分の記事

上記は、編集者が紹介した Yii2 rbac 権限制御のルール チュートリアルの詳細な説明です。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。 。また、Bangkejia ウェブサイトをサポートしてくださった皆様にも感謝いたします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。