ホームページ >バックエンド開発 >PHPチュートリアル >「権限管理」の考え方についてアドバイスをいただきたいのですが、「役割」+「権限」で実現するのがベストです。

「権限管理」の考え方についてアドバイスをいただきたいのですが、「役割」+「権限」で実現するのがベストです。

WBOY
WBOYオリジナル
2016-06-23 14:27:421076ブラウズ

権限の役割

前述したとおり。 。 。

複雑なパーミッション設定を考えると、ifとelseを直接手書きで書くのは不可能だと思います

アドバイスを求めてください

ディスカッションに返信(解決策)

テーブルを作成するときに、パーミッションがあるはずですテーブル、ロールの 1 つ 属性外部キーはこのテーブルに関連付けられています

テーブルを作成するときに、権限テーブルが存在する必要があり、ロールの属性外部キーがこのテーブルに関連付けられています

詳細を教えていただけますか?主にプログラムを作成するときに、この権限をどのリンクに導入する必要がありますか? ユーザー権限が 5) で、それがセッション内に存在し、削除などの操作を実行したい場合 (権限要件は > です)。 6)、現在の権限と必要な権限を比較します。遠すぎてはっきりとは思い出せません

一般的な識別 (ログイン) の後、ロールがセッションに導入され、それに基づいて権限が取得されます。ロール参照テーブル上で


テーブル設計: ロール関連付けメニュー (第 1 レベルのメニュー ~ 第 2 レベルのメニュー...)、ロール関連の操作 (表示、削除、検索、変更)

まず表現と格納を決定します許可ワードの

php の整数は logn 型で、バイナリ 64 ビットです。

したがって、ほとんどのアプリケーションのニーズを満たすのに十分です。 (各バイナリビットはアクションを表します)

各役割には許可ワードがあり、各ユーザーは複数の役割を持つことができます
各ユーザーは例外許可ワードを持つこともできます

包括的な許可はビット演算を使用して計算されます:
ユーザー許可 = 役割権限
の表現と保存 php の整数は、64 バイナリビットの logn 型です。
したがって、ほとんどのアプリケーションのニーズを満たすのに十分です。 (各バイナリビットはアクションを表します)

各役割には許可ワードがあり、各ユーザーは複数の役割を持つことができます
各ユーザーは例外許可ワードを持つこともできます

包括的な許可はビット演算を使用して計算されます:
ユーザー許可 = 役割権限アクセス許可の保存と配布については非常に明確です

では、通話時にどのように使用するのでしょうか?

たとえば、削除ボタンができました

削除権限を持つキャラクターがこのページを閲覧すると、このボタンが表示されます どのように書けばよいでしょうか? ifとelseを使いますか?

削除ボタンをクリックして PHP に送信した後、権限を再度確認する必要がありますか?

条件付きの判断は常に必要ですが、そうでない場合、誰が誰であるかをどうやって知ることができますか?
しかし、これも非常に簡単です
$u = 0b1011; // ユーザー権限
$p = 0b0010; // アクション番号 (64 個のアクションがあることはすでに述べました)
if($p & $u) echo 'Have権限 ';

RBAC 設計パターンを見つけます

ユーザー テーブルはユーザー グループ テーブルに関連付けられ、ユーザー グループ テーブルは権限テーブルに関連付けられます。ユーザーが入力すると、最初にどのグループに属しているかを決定します。多くのオープンソース製品はこのように設計されています。

単純なロールには各メソッドが保存されます。このメソッドを使用する場合、ユーザー ロールがこのメソッドに対する権限を持っているかどうかが判断されます。

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