2

倉庫、アイテム、プレソネルの管理を目的としたDjangoプロジェクトで働いています。次のモデルがあります:WarehouseMode、ItemModel、PersonellModel。

管理者は、ユーザーを作成し、次のいずれかの役割をユーザーに割り当てることができる必要があります。

  1. 管理者-フルアクセス。
  2. 倉庫管理者-制限付きアクセス(アイテムの追加、削除、変更、およびプレソネル)
  3. 個々の倉庫ユーザー-制限付きアクセス(個人プロファイルの変更)
  4. その他のデータベースサブスクライバー-(読み取り専用)

「倉庫管理者」は、1つの倉庫の「所有者」である必要があります。

どの許可システムを使用する必要がありますか?行ごとの許可システム?

ありがとう

4

1 に答える 1

3

行レベルのアクセス許可は、この実装の最終的には確実に楽になりますが、経験から言えば、他のものとは別にフローを書き出して、多くのテストを行う必要があることは間違いありません。行レベルの権限で最近使用した構造を以下に示します。

いくつか試してみた結果、私の好みは django-guardian で、クラスベースのビューと mixin を使用する方が (私が考案した構造を簡単に実装できるため) うまく機能することがわかりました。

https://github.com/lukaszb/django-guardian.git

class Meta:
    permissions = (
    ('can_view', 'View project'),
    ('manage_view', 'Can assign View project'),
    ('can_edit', 'Edit project'),
    ('manage_edit', 'Can assign Edit project'),
    ('can_delete', 'Delete project'),
    ('manage_delete', 'Can assign Delete project'),
    ('creator', 'Full access to model features.'),
    )
于 2012-11-01T02:45:02.177 に答える