2017-07-07 52 views
0

在我的Django管理員中,我添加了一個名爲privilage類的新字段以及組和用戶權限。基於Django組的用戶訪問控制

所以,我的用戶表具有privilage_class基於我正在訪問多個組。每個組都擁有user_permissions。

我做了管理員設置,但是沒有實現權限。除了什麼?

爲例如:

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

每個組中攜帶的用戶權限(URL),

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

建立已經完成。但不知道如何申請許可。

我知道很難理解,但親會理解。對此我很有幫助。

我使用django和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

感謝是的,這是我想要的 –

相關問題