From 105b93a0e3a4d8373739fe9c0496aaa415a58e97 Mon Sep 17 00:00:00 2001 From: Oskar Jaskolski Date: Wed, 28 Aug 2019 12:30:31 +0200 Subject: [PATCH] added method allowing to remove token --- InvenTree/users/views.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/InvenTree/users/views.py b/InvenTree/users/views.py index a4920b717e..207d8a98dc 100644 --- a/InvenTree/users/views.py +++ b/InvenTree/users/views.py @@ -27,15 +27,32 @@ class GetAuthToken(ObtainAuthToken): """ Return authentication token for an authenticated user. """ def post(self, request, *args, **kwargs): + return self.login(request) + + def delete(self, request): + return self.logout(request) + + def login(self, request): serializer = self.serializer_class(data=request.data, context={'request': request}) serializer.is_valid(raise_exception=True) user = serializer.validated_data['user'] token, created = Token.objects.get_or_create(user=user) - + return Response({ 'token': token.key, 'pk': user.pk, 'username': user.username, 'email': user.email }) + + def logout(self, request): + try: + request.user.auth_token.delete() + except (AttributeError, ObjectDoesNotExist): + pass + + self.logout(request) + + return Response({"success": _("Successfully logged out.")}, + status=status.HTTP_200_OK)