Browse Source

Adiciona função para renovar token do usuário autenticado

pull/3151/head
Vinícius Cantuária 6 years ago
parent
commit
b9d2d6aa3e
  1. 3
      sapl/api/urls.py
  2. 12
      sapl/api/views.py

3
sapl/api/urls.py

@ -6,7 +6,7 @@ from rest_framework.routers import DefaultRouter
from sapl.api.deprecated import MateriaLegislativaViewSet, SessaoPlenariaViewSet,\ from sapl.api.deprecated import MateriaLegislativaViewSet, SessaoPlenariaViewSet,\
AutoresProvaveisListView, AutoresPossiveisListView, AutorListView,\ AutoresProvaveisListView, AutoresPossiveisListView, AutorListView,\
ModelChoiceView ModelChoiceView
from sapl.api.views import SaplApiViewSetConstrutor, AppVersionView from sapl.api.views import SaplApiViewSetConstrutor, AppVersionView, renova_token
from .apps import AppConfig from .apps import AppConfig
@ -71,6 +71,7 @@ urlpatterns = [
url(r'^api/', include(urlpatterns_api_doc)), url(r'^api/', include(urlpatterns_api_doc)),
url(r'^api/', include(urlpatterns_router)), url(r'^api/', include(urlpatterns_router)),
url(r'^api/version', AppVersionView.as_view()), url(r'^api/version', AppVersionView.as_view()),
url(r'^api/renovar-token/$', renova_token, name="renova_token"),
# implementar caminho para autenticação # implementar caminho para autenticação
# https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/ # https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/

12
sapl/api/views.py

@ -3,10 +3,12 @@ import logging
from django import apps from django import apps
from django.conf import settings from django.conf import settings
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse_lazy
from django.db.models import Q from django.db.models import Q
from django.db.models.fields.files import FileField from django.db.models.fields.files import FileField
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.dispatch import receiver from django.dispatch import receiver
from django.http import HttpResponseRedirect, HttpResponse
from django.utils.decorators import classonlymethod from django.utils.decorators import classonlymethod
from django.utils.text import capfirst from django.utils.text import capfirst
from django.utils.translation import ugettext_lazy as _ 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) 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: class BusinessRulesNotImplementedMixin:
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
raise Exception(_("POST Create não implementado")) raise Exception(_("POST Create não implementado"))

Loading…
Cancel
Save