Browse Source

add last global time refresh

pull/2214/head
Leandro Roberto 7 years ago
parent
commit
43326a96b4
  1. 4
      sapl/api/urls.py
  2. 14
      sapl/api/views.py
  3. 10
      sapl/rules/apps.py

4
sapl/api/urls.py

@ -5,7 +5,7 @@ from rest_framework.routers import DefaultRouter
import sapl.api.base.urls import sapl.api.base.urls
import sapl.api.materia.urls import sapl.api.materia.urls
import sapl.api.sessao.urls import sapl.api.sessao.urls
from sapl.api.views import ModelChoiceView from sapl.api.views import ModelChoiceView, TimeRefreshDatabaseView
from .apps import AppConfig from .apps import AppConfig
@ -22,6 +22,8 @@ urlpatterns_router = router.urls
urlpatterns_api = [ urlpatterns_api = [
url(r'^model/(?P<content_type>\d+)/(?P<pk>\d*)$', url(r'^model/(?P<content_type>\d+)/(?P<pk>\d*)$',
ModelChoiceView.as_view(), name='model_list'), ModelChoiceView.as_view(), name='model_list'),
url(r'time_refresh$',
TimeRefreshDatabaseView.as_view(), name="time_refresh")
] ]
if settings.DEBUG: if settings.DEBUG:

14
sapl/api/views.py

@ -1,8 +1,12 @@
from django.apps import apps
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from rest_framework.generics import ListAPIView from rest_framework.generics import ListAPIView
from rest_framework.permissions import (IsAuthenticated) from rest_framework.permissions import (IsAuthenticated, AllowAny)
from rest_framework.response import Response
from rest_framework.views import APIView
from sapl.api.serializers import ModelChoiceSerializer from sapl.api.serializers import ModelChoiceSerializer
from sapl.rules.apps import AppConfig
class ModelChoiceView(ListAPIView): class ModelChoiceView(ListAPIView):
@ -24,3 +28,11 @@ class ModelChoiceView(ListAPIView):
def get_queryset(self): def get_queryset(self):
return self.model.objects.all() return self.model.objects.all()
class TimeRefreshDatabaseView(APIView):
permission_classes = (AllowAny,)
def get(self, request, *args, **kwargs):
return Response({'last_global_refresh_time': apps.get_app_config('rules').time_refresh})

10
sapl/rules/apps.py

@ -6,7 +6,10 @@ from django.contrib.auth import get_user_model
from django.contrib.auth.management import _get_all_permissions from django.contrib.auth.management import _get_all_permissions
from django.core import exceptions from django.core import exceptions
from django.db import models, router from django.db import models, router
from django.db.models.signals import post_save, post_delete
from django.db.utils import DEFAULT_DB_ALIAS from django.db.utils import DEFAULT_DB_ALIAS
from django.dispatch.dispatcher import receiver
from django.utils import timezone
from django.utils.translation import string_concat from django.utils.translation import string_concat
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import reversion import reversion
@ -21,6 +24,7 @@ class AppConfig(django.apps.AppConfig):
name = 'sapl.rules' name = 'sapl.rules'
label = 'rules' label = 'rules'
verbose_name = _('Regras de Acesso') verbose_name = _('Regras de Acesso')
time_refresh = timezone.now()
def create_proxy_permissions( def create_proxy_permissions(
@ -254,3 +258,9 @@ models.signals.post_migrate.connect(
models.signals.pre_delete.connect( models.signals.pre_delete.connect(
receiver=revision_pre_delete_signal, receiver=revision_pre_delete_signal,
dispatch_uid="pre_delete_signal") dispatch_uid="pre_delete_signal")
@receiver([post_save, post_delete])
def refresh_time_update_base(sender, instance, **kwargs):
rule_app = apps.get_app_config('rules')
rule_app.time_refresh = timezone.now()

Loading…
Cancel
Save