From b9d2d6aa3e6a42cff2afe956be853ee35d70c84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Cantu=C3=A1ria?= Date: Tue, 28 Apr 2020 08:21:45 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20fun=C3=A7=C3=A3o=20para=20renovar=20?= =?UTF-8?q?token=20do=20usu=C3=A1rio=20autenticado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/api/urls.py | 3 ++- sapl/api/views.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/sapl/api/urls.py b/sapl/api/urls.py index 6bfeb12bf..cf07cb4ed 100644 --- a/sapl/api/urls.py +++ b/sapl/api/urls.py @@ -6,7 +6,7 @@ from rest_framework.routers import DefaultRouter from sapl.api.deprecated import MateriaLegislativaViewSet, SessaoPlenariaViewSet,\ AutoresProvaveisListView, AutoresPossiveisListView, AutorListView,\ ModelChoiceView -from sapl.api.views import SaplApiViewSetConstrutor, AppVersionView +from sapl.api.views import SaplApiViewSetConstrutor, AppVersionView, renova_token from .apps import AppConfig @@ -71,6 +71,7 @@ urlpatterns = [ url(r'^api/', include(urlpatterns_api_doc)), url(r'^api/', include(urlpatterns_router)), url(r'^api/version', AppVersionView.as_view()), + url(r'^api/renovar-token/$', renova_token, name="renova_token"), # implementar caminho para autenticação # https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/ diff --git a/sapl/api/views.py b/sapl/api/views.py index cb0b1a8ff..33e88109e 100644 --- a/sapl/api/views.py +++ b/sapl/api/views.py @@ -3,10 +3,12 @@ import logging from django import apps from django.conf import settings from django.contrib.contenttypes.models import ContentType +from django.core.urlresolvers import reverse_lazy from django.db.models import Q from django.db.models.fields.files import FileField from django.db.models.signals import post_save from django.dispatch import receiver +from django.http import HttpResponseRedirect, HttpResponse from django.utils.decorators import classonlymethod from django.utils.text import capfirst from django.utils.translation import ugettext_lazy as _ @@ -48,6 +50,16 @@ def create_auth_token(sender, instance=None, created=False, **kwargs): Token.objects.create(user=instance) +def renova_token(request): + if request.user.is_authenticated: + Token.objects.filter(user_id=request.user.id).delete() + Token.objects.create(user_id=request.user.id) + + return HttpResponseRedirect(reverse_lazy("sapl.base:user_edit", kwargs={"pk": request.user.id})) + else: + return HttpResponse('Usuário não autenticado!', status=401) + + class BusinessRulesNotImplementedMixin: def create(self, request, *args, **kwargs): raise Exception(_("POST Create não implementado"))