8

私は、かなり大きくて複雑な新しいサイトを設計しながら、RBAC に飛び込んでいます。タスクを作成するか、ビジネスルールを使用して単に操作を作成するかを考えています。

今、私は既存のドキュメントのすべてではないにしてもほとんどを読みました。現在のドキュメントには、「タスクは操作で構成される」と記載されています。This wiki article は、さまざまな用語は単に命名規則であり、存在する唯一の制限は構造的なものであると述べています-ロールにはタスク (または他のロール) を含める必要があります。タスクには操作 (または他のタスク) を含める必要があり、操作は他のエンティティによってさらに構成されない原子的な用語です。また、「Agile web dev...」と「Yii cookbook」の関連セクションも読みましたが、どちらもこの問題について詳しく説明していません (少なくとも私の眼鏡を通して見た場合)。

質問を提示する私の例に行きましょう。実際、上記のドキュメント リソースのほとんどで示されているのと同様の例を使用してみましょう: ブログ投稿があり、その作成者が「自分の投稿を更新」できるようにしたい/必要があるとします。では、なぜこれがドキュメント リソースで一般的に示されているタスクであり、ビジネス ルールによる操作ではないのでしょうか?

上記の質問は、「タスク」の不明確な定義を明らかにしていると思います(もちろん、RBACのコンテキストで)。

RBAC タスクのより良い定義を抽出するのを手伝ってください。

編集: 言及された用語の次の定義は、それらを有用な方法で概念化するのに役立ちます. 簡単に言うと、操作は基本的な構成要素です。それらは開発者が扱う素材であり、それらだけです。開発者は、操作の上にタスクを構成します。役割は、一連のタスクのようにタスクで構成されます。役割とタスクは、サイト管理者が行うべきものです。ユーザーへの割り当てと取り消しは行いますが、操作は行いません。これは、これらのエンティティ (役割、タスク、および操作) を見て把握するための優れた方法です。別の方法で概念化する別のオプションはありますか? コメントをお待ちしております。

ティア!ボアズ。

4

3 に答える 3

3

質問の編集で行ったのと同じことを言います。タスクとは、ユーザーが実行できる共通の操作を組み合わせたものです。たとえば、操作oListoViewoCreateおよびoUpdateこれらは、開発者がアクセス制御のためにコントローラー アクションに割り当てる操作です。最初の 2 つは読み取り専用で、次の 2 つはデータへの書き込みアクセスがあります (これが共通点です)。したがって、これらをタスクに結合しtInspecttManageどちらも 2 つの操作を保持する必要があります。最初の操作は一覧表示および表示でき、2 つ目は作成および更新できます。必要に応じて、リスト、表示、更新、および作成できるユーザーtInspectのサブタスクを作成することもできますが、通常は両方のタスクを自分のロールに与えるだけです。tManagetManage

于 2012-03-13T04:04:46.870 に答える
2

役割 -> タスク -> 操作の分類に関しては、クラス CAuthItem のコードでわかるように、それらは本質的に同じものです。主にユーザーの観点から、それらに異なる名前を付けます。

  • 操作は開発者のみが使用し、最高レベルの権限を表します。

  • タスクは、開発者による操作の上に構築されます。これらは、RBAC 管理者が使用する基本的なビルディング ユニットを表します。

  • 役割は、管理者によってタスクの上に構築され、ユーザーまたはユーザー グループに割り当てることができます。

上記は推奨事項であり、必須ではありません。一般に、管理者はタスクとロールのみを表示できますが、開発者は操作とタスクのみに関心があります。

これをチェックしてください: http://www.yiiframework.com/forum/index.php/topic/2313-rbac-confusion/page_ p _16035#entry16035

于 2013-07-16T10:03:26.933 に答える
1

ユーザーが 2 人いる場合 1) 管理者 2) ユーザー

そのため、更新ページのロール updatePost を設定します。
admin は updatePost の親であるため、admin は更新できます。ユーザーは updateOwnPost パーミッションを持っています。

于 2012-06-08T21:01:48.440 に答える