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 アソシエーションの書き方に何か問題があると思いますか?