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.
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
from django.utils.translation import gettext_lazy as _
|
|
from django.db import models
|
|
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin, GroupAdmin as BaseAuthGroupAdmin
|
|
from django.contrib.auth.models import User as BaseUser, Group as BaseAuthGroup
|
|
|
|
|
|
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
|