2016-10-04 18 views
1

我可以限制我的Django Rest Framework只能由超級用戶訪問嗎?限制超級用戶以外的所有用戶使用Django Rest Framework

我可以將裝飾添加到URL,這樣的網址只能由超級用戶訪問:

url(r'^api/', include(router.urls)), 
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
+0

使用'login_required'或'permission_classes' – dnit13

+0

寫自己的權限類:

從rest_framework進口許可

類SuPermission(permissions.BasePermission)

在視圖中使用它。 – Rohan

回答

1

如果你想允許任何工作人員訪問API,那麼很容易

REST_FRAMEWORK = { 
    'DEFAULT_PERMISSION_CLASSES': (
     'rest_framework.permissions.IsAdminUser', 
    ) 
} 

對於超級用戶,沒有內置的權限類,但我們可以輕鬆地創建一個。

def has_permission(self, request, view): 
    return request.user.is_authenticated() and request.user.is_superuser 

然後

REST_FRAMEWORK = { 
    'DEFAULT_PERMISSION_CLASSES': (
     'myapp.permissions.SuPermission', 
    ) 
} 
相關問題