0

私のDjango管理者では、私はグループとユーザ権限とともにprivilageクラスという新しいフィールドを追加しました。Djangoグループベースのユーザアクセスコントロール

私はprivilage_classを持っている私のuserテーブルは、私は複数のグループにアクセスしています。各グループにはuser_permissionsがあります。

管理者設定を行いましたが、権限が実装されていませんでした。何を超えてやるべき?例えばのための

user having priv class executive 
Privilege class if executive he having access to multiple groups-> 
    Assets 
    Billing 
    etc 

各グループは

Assets -> assets related URL 
Billing -> related URLs 
etc... 

設定が行われている、ユーザー権限(URL)を運びます。許可をどのように適用するかは分かりません。

私は分かりにくいと知っていますが、プロが理解します。親切に私にこのことについて助けてください。

私はジャンゴとDRFだけでなく、事前に

感謝を使用しています!

答えて

1

ユーザーが特定の特権クラスに属しているときに何をすべきかを決めるために、独自のカスタムアクセス許可クラスを作成する必要があります。このURL [1]には、実装するドキュメントがあります。

実装例:

class UserPrevilagePermission(permissions.BasePermission): 

    def has_permission(self, request, view): 
     user = request.user 
     # check if the user has required permission based on request url 
     if 'assets' in request.path: 
      # decide which perm to check 
      if user.has_perm('perm-name-to-check'): 
       return True 
     return False 

ここで説明したように今すぐ[2]ビューの中でこの権限クラスを使用します。

ここからユーザオブジェクトのdjangoの権限メソッドをチェックしてください[3]。

[1] http://www.django-rest-framework.org/api-guide/permissions/#custom-permissions

[2] http://www.django-rest-framework.org/api-guide/permissions/#setting-the-permission-policy

[3] https://docs.djangoproject.com/en/1.11/ref/contrib/auth/#methods

+0

おかげではい、これは私が何をしたいです –

関連する問題