ホームページ >バックエンド開発 >PHPチュートリアル >「権限管理」の考え方についてアドバイスをいただきたいのですが、「役割」+「権限」で実現するのがベストです。
権限の役割
前述したとおり。 。 。テーブルを作成するときに、パーミッションがあるはずですテーブル、ロールの 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 設計パターンを見つけます
ユーザー テーブルはユーザー グループ テーブルに関連付けられ、ユーザー グループ テーブルは権限テーブルに関連付けられます。ユーザーが入力すると、最初にどのグループに属しているかを決定します。多くのオープンソース製品はこのように設計されています。
単純なロールには各メソッドが保存されます。このメソッドを使用する場合、ユーザー ロールがこのメソッドに対する権限を持っているかどうかが判断されます。