You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kompass/jdav_web/logindata/models.py

49 lines
1.2 KiB
Python

from django.contrib.auth.models import Group as BaseAuthGroup
from django.contrib.auth.models import User as BaseUser
from django.db import models
from django.utils.translation import gettext_lazy as _
class AuthGroup(BaseAuthGroup):
class Meta:
proxy = True
verbose_name = _("Permission group")
verbose_name_plural = _("Permission groups")
class LoginDatum(BaseUser):
class Meta:
proxy = True
verbose_name = _("Login Datum")
verbose_name_plural = _("Login Data")
class RegistrationPassword(models.Model):
"""
A password that can be used to register after inviting a member.
"""
password = models.CharField(max_length=100, verbose_name=_("Password"))
def __str__(self):
return self.password
class Meta:
verbose_name = _("Active registration password")
verbose_name_plural = _("Active registration passwords")
def initial_user_setup(user, member):
try:
standard_group = AuthGroup.objects.get(name="Standard")
except AuthGroup.DoesNotExist:
return False
user.is_staff = True
user.save()
user.groups.add(standard_group)
member.user = user
member.invite_as_user_key = ""
member.save()
return True