En Django Rest framework, podemos verificar permisos como (isAuthenticated, isAdminUser...) pero, ¿cómo podemos agregar nuestros permisos personalizados y decidir qué puede hacer Django con esos permisos?
Realmente quiero entender qué sucede detrás (no encontré una documentación que explique esto):
@permission_classes([IsAdminUser])Gracias
Escribe tus propios permisos, así:
def permission_valid_token(func): # first arg is the viewset, second is the request def wrapper(*args, **kwargs): valid_token, user_token = test_token_authorization(args[1].headers) # my function to validate the user if not valid_token: return Response(status=status.HTTP_401_UNAUTHORIZED) return func(*args, **kwargs) return wrapperEste es un permiso que estoy usando en la aplicación, probablemente tendrá que cambiar la parte valid_token
Y los importas en tus vistas.
from file_that_you_use.permissions import permission_valid_tokenY lo usas como decorador
class WeatherViewSet(viewsets.ViewSet): @permission_valid_token def list(self, request):Esto es solo un conjunto de vistas, por ejemplo, puede usar conjuntos de vistas genéricos o lo que quiera.