0

Li3_activerecordを使用して、phpActiveRecordでリチウムを使用しています。ORM とアソシエーションに戻ってから数年が経ちましたが、現在の ACL の設定に少し戸惑っています。

簡潔にするために簡略化した、私のテーブルとその関連付けを次に示します。

USERS - $belongs_to role
-----
id
role_id
email


ROLES - $has_many permissions, resources through permissions, users
-----
id
title (eg: Admin, Member, Guest)


RESOURCES - $has_many roles, permissions
---------
id
controller (eg: Members, Products, Categories)
action (eg: Index, Delete, Edit)
procedure (eg: Email, Publish, PrivateMessage)


PERMISSIONS - $belongs_to role, resource
-----------
id
role_id
resource_id
allowed

予期しない結果が得られたので、まず関連付けが正しいかどうかを確認したいと思います。基本的に、ユーザーは 1 つのロールしか持つことができません。リソースは、コントローラー、アクション、およびアクション内で実行できる特定の手順の組み合わせによって定義されます。アクセス許可テーブルを通じて、リソースに対するアクセス許可がユーザーに与えられます。

ORM アソシエーションの書き方に何か問題があると思いますか?

4

1 に答える 1

2

基本的に、あなたのモデルは正しいです。これは非常に単純な RBAC アーキテクチャであり、ニーズに適合する可能性があります。実際、こちらのプラグインをご覧になることをお勧めします: https://github.com/tmaiaroto/li3_access箱から出してすぐに使用できる RBAC-Adapter と、その他の優れたアドオンを提供します。

現在の問題に関する詳細情報やコードを提供していただけると、より適切なサポートが得られる可能性があります。

于 2012-05-14T06:34:32.210 に答える