From 4797bbc69650c651b3eafbbb2b8365559f13ce29 Mon Sep 17 00:00:00 2001 From: adevopg <133045315+adevopg@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:51:54 +0100 Subject: [PATCH] Fix Se arreglado un problema que el token generado caducaba a los 7 dias en lugar de no poder generar uno nuevo hasta los 7 dias ahora nunca caducara si el usuario no lo regenera de nuevo --- home/__pycache__/views.cpython-313.pyc | Bin 46989 -> 46901 bytes home/views.py | 24 ++++++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/home/__pycache__/views.cpython-313.pyc b/home/__pycache__/views.cpython-313.pyc index ecb4dea5f72a520163bf3cfd79f712e1fbc45110..346eb7bfbc48d49ca03c595e7c161ddd02ba7e56 100644 GIT binary patch delta 1145 zcmYjPZ%kWN6uEbMvK(fEg+^6JCARAi5Yi+cuVP29 zK?ok6c?`^ltz|l!{bq3JS|f3ci5nzizT>E5m+v4V%{RwQ}~2 zUg-AaL2j1|Z-lBehgZ~Ojc6v-UX~J80-KUO_EzmZyESF?mX9otLHhSKf}u-N@I&W3Y`tKt6P0JcCwPkE*zs2^-=YHJBM zhnkvcNN;ax4MT6wHez8D^WjpDPd>#~;1m&RTY=X7xuCo|a%e8qdCQdhTfwIBiq9&> zDnDjL6_y>YK1nfcMCH+g}n= z@)AnkyyA*0t{;^GBX}fLz(M2n-tCwSGtvhk`reQ{!cZ5ZPuIiW&pr+Pef8v17V3c; zeW%D7hI*mn{qM*aLq}oP(M58Wp#i8kcAAVc^fCN=>=Sa1p%LgjJ|s^uG|Jm~S-VPj zvA>T*SZECX=)XcPFf<9@e2^e9hGNF>i6Km;8T`uFHYi|hKp8wmF0sJ(&;hsP%M4xR zt1X8msmOp2MT}?Qqmy28g=KCVGbd{Zxz6B2!#3Qd;G4$a_;xJaU=e!L_-SGUOL2zZ zt_D0+1g9rm@a?1@Uxho9WB4KrOnq6*hf_X=@{V)^Q+2_tHP$ulZmen8QM0?Mj&eG* zlbh@C)_FI+1H3Jdc+_k325@&I3y@5P9Osdkij^^yd97p*KSZ zLg99LjVGUBW9TB!Szc+S2lV##P_QYew}~ke3aCSB_xoch2>Ea$4ry6Qglr>j4%{vlqY1P6cSsrv{h_drS&py4>ihvFxg|hN93htc_LfN7R;pF zp0oMBvH8X#(>8x%Nx}oOuR5w0jHI+Or#Q2UGpBg7iZ{`gQM?(YHm9t~Dr;^iL0vsm zBGDasMc-P=MsbXN5b7Uhrx0~QzW)R}gD4JtuZ^%VM7`jB{VIDKQ6CJxQ3348x9l8x z1Mt(4GweK~Avk<=lqC?o1-^k{Hjd~NTpIX_B@vy)s;}8Qh|Vw8??3h>n?x_AHyt0Q z>;r@s^_fA5()VHZ#5#5fi7ViRIrasjoL+V^K8xIVVJ$WOfDE72I}@iV&46S48ABEsh>izfWc(~m!|I8TRB;;@=kn|D_k>*)m+>xP zX26}SqQ5~?a=Y!aAZ`ouqcFe2WU`IUgOYmGct;R-VRh>9x;(;LYGmiG7osmm_e5hI z{5uhB#vj6e6*22`FY-N+j*e*iv+a?NDE~!-(=e9W%$P(-xxSFPW!xb?5+4*syagA} zz{Lx2AwCznb0IeuN^>DH7y5D`Ef=bCAtqlOY;l^xbb=EaaRz}Yr^$}@p-1-S^w88k O%GS}6Kbs(PG5QaAk2&A~ diff --git a/home/views.py b/home/views.py index 90a50aa..32658a8 100644 --- a/home/views.py +++ b/home/views.py @@ -820,27 +820,31 @@ def security_token_view(request): token_date = existing_token.created_at.strftime('%H:%M:%S %d-%m-%Y') if request.method == 'POST': - # Verificar si ya existe un token activo y si ha caducado - if existing_token and existing_token.expires_at > timezone.now(): - remaining_days = (existing_token.expires_at - timezone.now()).days - return JsonResponse({ - 'success': False, - 'message': f'Sólo puedes solicitar un nuevo Token de seguridad cada 7 días, faltan {remaining_days} días para generar un nuevo Token.' - }) + # Verificar si ya existe un token y si se puede generar uno nuevo después de 7 días + if existing_token: + # Comprobar si han pasado al menos 7 días desde la creación del token + days_since_creation = (timezone.now() - existing_token.created_at).days + if days_since_creation < 7: + remaining_days = 7 - days_since_creation + return JsonResponse({ + 'success': False, + 'message': f'Sólo puedes solicitar un nuevo Token de seguridad cada 7 días, faltan {remaining_days} días para generar un nuevo Token.' + }) # Generar un nuevo token token = secrets.token_urlsafe(4)[:6] expires_at = timezone.now() + timedelta(days=7) - # Eliminar tokens anteriores del usuario - SecurityToken.objects.filter(user_id=user_id).delete() + # Eliminar el token anterior y crear uno nuevo + if existing_token: + existing_token.delete() # Crear y guardar el nuevo token new_token = SecurityToken.objects.create( user_id=user_id, token=token, ip_address=ip_address, - expires_at=expires_at + expires_at=expires_at # Esta fecha solo se usa para el control de los 7 días ) # Enviar el correo con el token al usuario