roosterwijs/backend/modules/accounts/models.py
bes-r c845588e5e
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
Add roles modules audit logging and CI
2026-07-04 23:01:06 +02:00

41 lines
1.4 KiB
Python

"""
Accounts-module: gebruikersbeheer.
Bovenop Django's ingebouwde User leggen we een profiel met een rol en een
optionele koppeling aan een persoon (leerling/medewerker) uit de kern.
"""
from django.conf import settings
from django.db import models
class Gebruikersrol(models.TextChoices):
BEHEERDER = "beheerder", "Beheerder"
MEDEWERKER = "medewerker", "Medewerker"
ROOSTERMAKER = "roostermaker", "Roostermaker"
DIRECTIE = "directie", "Directie"
ZORGCOORDINATOR = "zorgcoordinator", "Zorgcoordinator"
STAGEBEGELEIDER = "stagebegeleider", "Stagebegeleider"
KIJKER = "kijker", "Alleen lezen"
OUDER = "ouder", "Ouder"
LEERLING = "leerling", "Leerling"
class Gebruikersprofiel(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="gebruikersprofiel"
)
rol = models.CharField(
"rol", max_length=16, choices=Gebruikersrol.choices, default=Gebruikersrol.MEDEWERKER
)
persoon = models.ForeignKey(
"core.Persoon", on_delete=models.SET_NULL, null=True, blank=True,
related_name="gebruikers",
help_text="Koppeling aan een leerling of medewerker uit de kern.",
)
class Meta:
verbose_name = "gebruikersprofiel"
verbose_name_plural = "gebruikersprofielen"
def __str__(self) -> str:
return f"{self.user.get_username()} ({self.get_rol_display()})"