from django.conf import settings from django.contrib.auth.models import Group as AuthGroup from django.db import models from pirates import models as pirates_models class Group: def save(self, *args, **kwargs): for user in self.user_set.all(): if user.update_group_based_admin(): user.save() return super().save(*args, **kwargs) class Meta: proxy = True class User(pirates_models.AbstractUser): sso_username = models.CharField( max_length=128, blank=True, null=True, verbose_name="Username z SSO", ) email = models.EmailField( blank=True, null=True, verbose_name="E-mailová adresa", ) def set_unusable_password(self) -> None: # Purely for compatibility with Guardian pass def get_username(self) -> str: first_name = self.first_name if len(first_name) != 0: first_name += " " return f"{first_name}{self.last_name}" def get_lecture_registered(self, lecture) -> bool: from lectures.models import Lecture return Lecture.objects.filter(id=lecture.id, rsvp_users=self).exists() class Meta: app_label = "users" verbose_name = "Uživatel" verbose_name_plural = "Uživatelé"