2012-03-08 7 views
7

現在私はDjangoでアクセス制御を実装しています。私は組み込みのパーミッションについて読んだことがありますが、オブジェクト単位では気にしません。たとえば、「作成者だけが自分のアイテムを削除できます」というようなアクセス許可が必要です。だから私はジャンゴ・ガーディアンについて読んだ。また、それについて考えた後、制約が変わるかどうかを管理して確認するのは難しいかもしれません。django - djangoのアクセス許可を比較し、djangoの規則を使用しています

私はdjango-rulesという次の一般的な権限管理アプリケーションを見ています。これは私が必要とするものに合っているようです。しかし、私はdjango-rulesではモデルインスタンスが関与する必要があると考えています(オブジェクトレベル)。つまり、「メンバーエリア」のような単純なビューが必要な場合、この関数は実行されません。

これは私に、後者のシナリオに対するcontribの許可と前者のシナリオに対するdjango-rulesの両方を使用することについて考えさせました。ここでの私の質問は、どちらの権限フレームワークも簡単に管理できることです。たとえば、私はさまざまなユーザーグループを持っています。私は管理者が(ビューへのアクセスを許可するために)管理システムに特定の権限を追加し、十分なはずだと思っているが、ルールによって設定された制約に縛られていることが判明した重複するシナリオについて心配しています。

これは一般的なケースだと私は謙虚にあなたの経験に基づいてあなたのアドバイスや推奨事項を求めています。

+0

Djangoルールにはモデルインスタンスは必要ありません。モデルインスタンスはオプションです。 –

答えて

1

Django管理サイトでこれを行う場合は、has_delete_permission()などのメソッドをオーバーライドできます。これらは引数としてリクエストとオブジェクトを取得するので、「ユーザーXは自分のオブジェクトだけを削除できます」といったルールを設定することができます。

+0

管理サイト全体ではなく、とにかく感謝します。これらのメソッドに気付いていません。 – goh

+0

独自のコードでこれを行う場合は、モデルにuser_can_delete(self、user)のようなメソッドを追加して、独自のコードやhas_delete_permission()の管理メソッドで使用できます。 – che

関連する問題