私は CakePHP を使用してアプリを作成していますが、アプリの許可システムを理解しようとするときに精神的な障壁にぶつかりました。私はそれをいくつかの異なる方法に絞り込みました.a)最も簡単に実装され、b)最も効率的である(明らかにこれら2つの間にトレードオフがある可能性があります).
このアプリにはさまざまなモデルがありますが、簡単にするために、User、Department、および Event のみを使用します。モデルごとに、各ユーザーの CRUD 権限を個別に制御できるようにしたいと考えています。
Cake ACL
十分に文書化されていませんが、ACL システムがどのように機能するかについてある程度のアイデアがあり、次のように ARO を作成することを検討しました。
[1]user
create
read
update
delete
[2]department
...
これには、ユーザーが多くの異なるグループに属している必要があり、私が見たところ、Cake はこれを簡単にサポートしていません。これを行うためのより良い方法はありますか、または ACL はこの状況には適していませんか?
DB の許可フラグ
これは非常に簡単で、明らかに 、 などのユーザー レコードにフラグがあります
create_users
。read_users
モデルが 4 ~ 5 の場合、これはパーミッション用に 16 ~ 20 フィールドを意味するため、ビット マスクを使用するか、結合テーブルを使用することを検討しました。これらのうちの1つは他のものより優れていますか? オーバーヘッドが少なく、どちらが高速ですか?
全体として、効率と開発の容易さの観点から、アプリケーションの規模においてどのアプローチが最も理にかなっているかを本当に知りたいと思います。過去のプロジェクトの経験がある場合は、これを行う方法について他の提案も受け付けています。前もって感謝します!