0

そのため、RBAC と ACL についていくつかの調査を行いましたが、すべての例は非常に「1 次元」であり、私のニーズに完全には適合しません (少なくともそう思います)。

つまり、私が持っているのは、President 、 Vicepresi 、 Coach1などあるです。

現在、私は 14 か国を所有しており、各役割が異なる国での権利を持つことはできません。

さらに、マネージャーコーチプレーヤーなどのクラブがあります。

ここで最善の解決策は何ですか?

編集: ユーザーは、クラブの選手でありながら、ある国の大統領になることも、別の国のコーチ1になることもできます。

4

1 に答える 1

1

あなたの質問は完全に明確ではありませんが、私が理解できることから、人はある国では副大統領になることができますが、別の国では何の役にも立ちません。質問が正しければ、私が使用する RBAC 実装 tnat (PHP で記述された Yii フレームワーク) には、「ビジネス ルール」と呼ばれるものがあります。'。true または false を返す PHP コード スニペットであるビジネス ルールは、特定の役割 (簡単な例として) に関連付ける、または定義することができます。ビジネス ルールでは、その人がこの役割に関連付けられるだけでは十分ではありません。ビジネス ルールがこの役割に関連付けられている場合、それが実行され、そのコード スニペット (ブール値) からの回答によって、その人が「本当に」この役割を持っているかどうかが決まります。つまり、次の代わりに、ここで追加の次元の柔軟性が得られます。

人は「副社長」の役割を持っていますか? ->もし彼がこの役割を持っているなら、彼はすべての国で副大統領です (!...)。

次のように、より細かく調整されたチェックを行うことができます。

A 国で副大統領の役割を担っている人はいますか? (国 A は、RBAC レイヤーにパラメーターとして渡されます。RBAC レイヤーは、既に「個人」データ構造を管理しています。- > RBAC レイヤーはビジネス ルール スニペットを実行します。作成したコードは、この特定のユーザーとそのユーザーの親和性をチェックします。ユーザーが A 国の副大統領であるかどうかを判断するブール値を返します。

残っているのは、アプリケーションにロジックを挿入して、国ごとに 1 人の副大統領の一意性を DB (任意) に強制することだけです。これで完了です。

それが役立つことを願っています。

于 2013-05-13T11:37:33.410 に答える