Added Cambios Permisos y Modulos

This commit is contained in:
fjrodriguez
2023-11-13 11:45:10 -06:00
parent ac80bf6a45
commit 61cf354a79
13 changed files with 772 additions and 49 deletions

View File

@@ -2,7 +2,7 @@ from django.db import models
from django.contrib.auth.models import User
from Sistemas.models import Sistema
from rest_framework.authtoken.models import Token
from django.utils import timezone
import re
class ClientesA24(models.Model):
@@ -21,7 +21,7 @@ class Sistemas_por_cliente_A24(models.Model):
cliente = models.ForeignKey(ClientesA24, related_name='cliente_spc_IMMEX', on_delete=models.CASCADE)
num_licencias= models.IntegerField(default=1)
def __str__(self):
return f'{self.cliente.Nombre}'
return f'{self.cliente.Nombre}, {self.id_sistema.nombre_sistema} '
class Meta:
ordering= ('-cliente','id_sistema')
unique_together = ('id_sistema', 'cliente')
@@ -46,7 +46,7 @@ class DeviceA24(models.Model):
def generate_username(self,client, device_name, mac_address):
""""""
username_ = f"SCAII_{client.RFC}_{device_name}_{mac_address}"
username_ = f"IMMEX_{client.RFC}_{device_name}_{mac_address}"
username_ = re.sub(r'\W+', '', username_)
if User.objects.filter(username=username_).exists():
@@ -64,4 +64,53 @@ class DeviceA24(models.Model):
super().save(*args, **kwargs)
def __str__(self):
return f'{self.username}'
return f'{self.username}'
class ActiveTokenSession(models.Model):
token = models.ForeignKey(Token, on_delete=models.CASCADE, db_index=True)
start_time = models.DateTimeField(default=timezone.now)
last_time = models.DateTimeField(default=timezone.now)
has_expired = models.BooleanField(default=False)
def is_expired(self, expiration_minutes):
expiration_time = self.start_time + timezone.timedelta(minutes=expiration_minutes)
return expiration_time < timezone.now()
##--------------------------PERMISOS
class Permisos_A24(models.Model):
nombre= models.CharField(max_length=100)
def __str__(self) -> str:
return f'{self.nombre}'
class Modulo(models.Model):
nombre = models.CharField(max_length=100)
#sistema_cliente = models.ForeignKey(Sistemas_por_cliente_A24, on_delete=models.CASCADE)
permisos = models.ManyToManyField(Permisos_A24)
def __str__(self) -> str:
return f'{self.nombre}'
class Suspension_Modulos_Permisos_Cliente(models.Model):
sistema_cliente = models.ForeignKey(Sistemas_por_cliente_A24, on_delete=models.CASCADE)
def __str__(self) -> str:
return f'{self.sistema_cliente} {self.sistema_cliente.id_sistema.nombre_sistema}'
class SuspensionModulo(models.Model):
supension_modPerm_id = models.ForeignKey(Suspension_Modulos_Permisos_Cliente, on_delete=models.CASCADE)
modulo = models.ForeignKey(Modulo, on_delete=models.CASCADE)
suspendido = models.BooleanField(default=False)
def __str__(self) -> str:
return f'{self.modulo}'
class SuspensionPermiso(models.Model):
suspension_modulo = models.ForeignKey(SuspensionModulo, on_delete=models.CASCADE)
permiso = models.ForeignKey(Permisos_A24, on_delete=models.CASCADE)
suspendido = models.BooleanField(default=False)
def __str__(self) -> str:
return f'{self.permiso}'