2017-04-03 72 views
0

是否有內置的方式爲Django中的用戶分配功能權限?從documentations看起來像Dajngo權限綁定到Models。在Django中的功能權限

例如,我想要創建的是4種類型的用戶組:普通用戶,管理員,管理員和Superadmin。

默認情況下,不同組中的用戶將有權執行不同類型的操作。例如Admin組中的用戶可以執行Task1,Task2和Task3,但Managers組中的用戶只能執行Task1和Task2(不管這些任務在哪個應用中)。

此外,用戶權限可以修改爲用戶撤銷執行某些任務的訪問權限。例如,默認情況下,所有管理員都可以執行任務1,任務2和任務3,但是可以修改特定管理員的權限以僅執行任務1和任務3。

這可以通過構建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):