Devices get token correct

This commit is contained in:
fjrodriguez
2023-04-05 14:23:08 -06:00
parent 01ecd88ace
commit 4db67be512
5 changed files with 24 additions and 25 deletions

View File

@@ -126,7 +126,7 @@ if DEBUG:
DATABASES = { DATABASES = {
'default': { 'default': {
'ENGINE': 'django.db.backends.mysql', 'ENGINE': 'django.db.backends.mysql',
'NAME': 'cfdi_as', 'NAME': 'cfdi_as2',
'USER': 'root', 'USER': 'root',
'PASSWORD':os.getenv("BD_PASS"), 'PASSWORD':os.getenv("BD_PASS"),
'HOST': '127.0.0.1', 'HOST': '127.0.0.1',

View File

@@ -10,7 +10,6 @@ from .views import (
Retrive_Cliente_Email, Retrive_Cliente_Email,
PACS_Retrive_RFCS, PACS_Retrive_RFCS,
#API DRF #API DRF
saldo_funct2, saldo_funct2,
add_timbre2, add_timbre2,
@@ -25,7 +24,6 @@ urlpatterns = [
path('add_timbre/', add_timbre2.as_view(), name='add_timbre'), path('add_timbre/', add_timbre2.as_view(), name='add_timbre'),
path('cancela_timbre/', CancelaTimbre.as_view(), name='cancela_timbre'), path('cancela_timbre/', CancelaTimbre.as_view(), name='cancela_timbre'),
path('timbres_cliente/<str:RFC>/', timbres_cliente, name='timbres_cliente'), path('timbres_cliente/<str:RFC>/', timbres_cliente, name='timbres_cliente'),
path('cliente/update/<int:pk>/',ClientesUpdateView.as_view(),name='update_cliente'), path('cliente/update/<int:pk>/',ClientesUpdateView.as_view(),name='update_cliente'),
path('cliente/add/', ClientesCreateView.as_view(), name='add_cliente'), path('cliente/add/', ClientesCreateView.as_view(), name='add_cliente'),

View File

@@ -383,11 +383,10 @@ def PACS_Retrive_RFCS(request):
return JsonResponse({'PACS':timbres},status=status) return JsonResponse({'PACS':timbres},status=status)
#-----------------------------------API VIEWS #-----------------------------------API VIEWS
#-------------------------------------------- #--------------------------------------------
class check_RFC(APIView): class check_RFC(APIView):
"""Verifica que el cliente pueda Timbrar"""
permission_classes = (IsAuthenticated,ItsAdminToken,) permission_classes = (IsAuthenticated,ItsAdminToken,)
def get(self,request): def get(self,request):
rfc = request.GET.get('RFC', None) rfc = request.GET.get('RFC', None)
@@ -405,10 +404,9 @@ class check_RFC(APIView):
except Exception as E: except Exception as E:
return Response({'Error':f'check_RFC:{E} RFC:{rfc}','isError':True}) return Response({'Error':f'check_RFC:{E} RFC:{rfc}','isError':True})
class CancelaTimbre(APIView): class CancelaTimbre(APIView):
"""API CLASS for upload the CFDI Version into the server""" """API CLASS for upload the CFDI Version into the server"""
permissions_classes=[IsAuthenticated,] permissions_classes=[IsAuthenticated,ItsAdminToken]
def post(self,request,*args, **kwargs): def post(self,request,*args, **kwargs):
UUID = request.data.get('UUID') UUID = request.data.get('UUID')
@@ -416,8 +414,7 @@ class CancelaTimbre(APIView):
timbre = Timbres.objects.get(uuid=UUID) timbre = Timbres.objects.get(uuid=UUID)
obj={'uuid':f'{timbre.uuid}_','rfcc':timbre.rfcc,'fecha':timbre.fecha,'folio':timbre.folio, obj={'uuid':f'{timbre.uuid}_','rfcc':timbre.rfcc,'fecha':timbre.fecha,'folio':timbre.folio,
'serie':timbre.serie,'tipo':'Cancela','rfcp':timbre.rfcp,'modo':'Normal' 'serie':timbre.serie,'tipo':'Cancela','rfcp':timbre.rfcp,'modo':'Normal'}
}
cancelaTimbre = Timbres.objects.create(**obj) cancelaTimbre = Timbres.objects.create(**obj)
return Response({'success':True}) return Response({'success':True})
@@ -425,8 +422,6 @@ class CancelaTimbre(APIView):
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.CancelaTimbre') BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.CancelaTimbre')
return Response({'Error':f'{ex}','isError':True}) return Response({'Error':f'{ex}','isError':True})
class add_timbre(APIView): class add_timbre(APIView):
pass pass
@@ -495,6 +490,7 @@ class ErroresTimbresListView(UserPassesTestMixin, LoginRequiredMixin,ListView):
if not res: if not res:
messages.error(self.request, f'Lo sentimos. La página que buscas no está disponible, no cuentas con los permisos.') messages.error(self.request, f'Lo sentimos. La página que buscas no está disponible, no cuentas con los permisos.')
return res return res
class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView): class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView):
model= Clientes model= Clientes
form_class=ClienteForm form_class=ClienteForm

View File

@@ -22,6 +22,7 @@ from .models import sistemas_por_cliente, DeviceHistory,Device
from .serializers import DeviceSerializer from .serializers import DeviceSerializer
from .permissions import HasAuthorizationHeader from .permissions import HasAuthorizationHeader
from .models import Sistema, BitacoraErrores from .models import Sistema, BitacoraErrores
from Clientes.models import Clientes
from .forms import SistemaForm,sistemas_por_clienteForm from .forms import SistemaForm,sistemas_por_clienteForm
from django.utils import timezone from django.utils import timezone
import re import re
@@ -42,6 +43,8 @@ from .customStorage import CustomStorage
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.db.models import Q
@login_required @login_required
def uploadZipViewHTML(request): def uploadZipViewHTML(request):
if request.method=="GET": if request.method=="GET":
@@ -226,13 +229,17 @@ class GetDeviceToken(APIView):
try: try:
data = request.data data = request.data
sis = Sistema.objects.get(nombre_sistema=data.get('sistema')) sis = Sistema.objects.get(nombre_sistema=data.get('sistema'))
cli = Clientes.objects.get(RFC=data.get('client'))
print('cli.id',cli.id)
device = Device.objects.filter( device = Device.objects.filter(
client__RFC=data.get('client'), Q(client=cli.id)
device_name=data.get('device_name'), #& Q(device_name=data.get('device_name'))
ip_address=data.get('ip_address'), #& Q(ip_address=data.get('ip_address'))
sistema= sis.id,#data.get('sistema'), #& Q(sistema= int(sis.id))
macAddress=data.get('macAddress') #& Q(macAddress__icontains=data.get('macAddress'))
).first() ).first()
print('device',device)
if device is not None: if device is not None:
token = {"token":str(device.token)} token = {"token":str(device.token)}
else: else:
@@ -249,8 +256,8 @@ class GetDeviceToken(APIView):
class RegisterDeviceView(APIView): class RegisterDeviceView(APIView):
"""Registra al Device""" """Registra al Device"""
permissions_classes = (permissions.AllowAny,) #permissions_classes = (permissions.AllowAny,)
permissions_classes=[IsAuthenticated, HasAuthorizationHeader]
def post(self,request): def post(self,request):
try: try:
serializer = DeviceSerializer(data=request.data,context={'request':request}) serializer = DeviceSerializer(data=request.data,context={'request':request})
@@ -262,9 +269,7 @@ class RegisterDeviceView(APIView):
except Exception as ex: except Exception as ex:
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(),
view='Sistemas.RegisterDeviceView') view='Sistemas.RegisterDeviceView')
return Response({'Error':f'{ex}','isError':True} return Response({'Error':f'{ex}','isError':True}, status=status.HTTP_200_OK)
, status=status.HTTP_200_OK
)
class AuthenticateDeviceView(APIView): class AuthenticateDeviceView(APIView):
"""Autentica al device""" """Autentica al device"""