0

パブリックアクセス、クライアント用の制限エリア、およびマネージャー用の別の制限エリアを備えたアプリを構築しています。

ユーザーへの外部キーを持つモデルとモデルがありManagerます。Clientそして Manager はグループmanagersに、クライアントは に自動的に追加されますclients

@login_required によって制限されているクライアント用のエクストラネットがあります。管理者用エクストラネットも同様です。

マネージャー エクストラネットへのアクセス クライアントを無効にする必要があります。

管理者グループに特権を作成し、それをエクストラネット部分のすべてのビューに追加した方が良いですか、それとも何か違うのでしょうか?

4

2 に答える 2

0

また、 group_requiredというuser_passes_testを使用して、このための既存のデコレータを見つけました

ここで見つけることができますhttp://djangosnippets.org/snippets/1703/

于 2013-04-23T12:00:34.923 に答える
0

1 つの方法は、user_passes_testデコレータを使用することです。

管理者に制限するビューの前にこの行を追加します。

@user_passes_test(lambda u: u.groups.filter(name='managers').count() > 0, login_url='/myapp/denied/')
于 2013-04-23T04:55:55.017 に答える