Source code for webapps.models
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.conf import settings
# Modèle pour les utilisateurs du site
[docs]
class LTOUser(AbstractUser):
firstname = models.CharField(max_length=64)
lastname = models.CharField(max_length=64)
email = models.EmailField(max_length=128, unique=True)
username = models.CharField(max_length=54, unique=True)
password = models.CharField(max_length=128) # Django gère le hachage du mot de passe
account_valid = models.BooleanField(default=False) # Contrôlé par l'administrateur
access_level = models.CharField(
max_length=20,
choices=[('user', 'Users'), ('admin', 'Administrators')],
default='user'
)
def __str__(self):
return f"{self.firstname} {self.lastname} - {self.access_level}"
# Modèle pour les profils de connexion créés par l'administrateur
[docs]
class ConnectionProfile(models.Model):
name = models.CharField(max_length=128, unique=True) # Champ unique
url = models.CharField(max_length=512)
login = models.CharField(max_length=64)
password = models.CharField(max_length=64) # Stocké en clair pour une utilisation dans la page d'administration
database_alias = models.CharField(max_length=64)
users = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="connection_profiles", blank=True) # vide au départ
def __str__(self):
return f"{self.name} - {self.database_alias}" # Affiche un nom plus lisible