Files
2024-11-27 13:18:16 +01:00

42 lines
1.2 KiB
Python
Executable File

from django.contrib.auth.base_user import BaseUserManager
from outbo.apps.core.models import SoftDeletableManager
class UserManager(SoftDeletableManager, BaseUserManager):
def __init__(self, *, alive_only=False):
self.alive_only = alive_only
super().__init__()
def create_user(self, username, email, password=None, save=True, **kwargs):
if username is None:
raise TypeError("User must have a username.")
if email is None:
raise TypeError("User must have an email address.")
user = self.model(
username=username, email=self.normalize_email(email), **kwargs
)
user.set_password(password)
if save:
user.save()
return user
def create_superuser(self, username, email, password, save=True):
if password is None:
raise TypeError("Superuser must have a password.")
user = self.create_user(
username=username, email=email, password=password, save=False
)
user.is_superuser = True
user.is_staff = True
if save:
user.save()
return user
def regular_users(self):
return self.filter(is_staff=False)