私は現在、Pyramid を使用して小さな Python Web サイトを開発しています。
しかし、許可システムを設計する方法がわかりません。
システムは非常に柔軟である必要があります。多くの異なるテーブル間で接続を確立する必要があります。
すべてのバリアントに対して 1 つの権限テーブルを作成する代わりに、1 つのテーブルだけを作成することを考えました - 私はそれを PermissionCollection と呼びます:
アクセス許可コレクション:
- permissionCollectionId - PrimaryKey
- onType = ENUM("ユーザー","教師","グループ","コース"...)
- onId = 整数
および許可テーブル:
- 許可 ID - 主キー
- 鍵
- 価値
- permissionCollectionId - ForeignKey
ソースにハードコーディングされたすべての可能な関係に対して標準の PermissionCollections を定義し、ユーザー、コース、教師... が特別な権限を持っている場合は、新しい PermissionCollection を作成し、それに権限を追加します。
私は Web プログラミングが初めてで、このアプローチが役立つかどうかわかりません。または、このようなものが存在する場合。Pyramid ACL はこのタスクに適したツールではないと思いますよね?