2017-04-03 10 views
0

Djangoのユーザに機能パーミッションを割り当てる方法はありますか? documentationsからDajngoのアクセス許可がモデルにバインドされているようです。Djangoの機能パーミッション

例えば、私が作成したいのは、通常ユーザー、管理者、管理者、およびスーパー管理者の4種類のユーザーグループです。

デフォルトでは、異なるグループのユーザーは、さまざまな種類の操作を実行するためのアクセス権を持ちます。たとえば、AdminグループのユーザーはTask1、Task2、Task3を実行できますが、ManagersグループのユーザーはTask1とTask2のみを実行できます。

さらに、ユーザーが特定のタスクを実行してアクセスを取り消すようにユーザー権限を変更することもできます。たとえば、デフォルトではすべての管理者がTask1、Task2、およびTask3を実行できますが、特定の管理者のアクセス許可を変更してTask1とTask3のみを実行することもできます。

これはDjangoの権限とグループを構築することで実現できますか、独自の権限システムを作成する必要がありますか(またはこれを行うサードパーティのDjangoアプリがありますか)?

独自の許可とグループシステムを作成する方がよい場合は、設計に従うようにしてください。

ありがとうございます!

+0

has_permissionデコレータは、ビューのために使用できます。つまり、ユーザー、グループ、アクセス許可などの多くの管理が可能です。 ロールベースのアクセス制御にdjango-guardianを使用しています。それはあなたのニーズに合うかもしれません。 – fiacre

答えて

1

あなたはfoo.can_writeようにしたり、いくつかのアクションのために必要な権限を設定することができますビューで

myuser.user_permissions.add(permission, permission, ...) 

のような独自のビューで管理ページにアクセス権を設定することができます。ドキュメントから:

from django.contrib.auth.decorators import permission_required 
@permission_required('polls.can_vote') 
def my_view(request): 
関連する問題