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.
49 lines
1.2 KiB
Python
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
|