Add custom user model

This commit is contained in:
Tobias Kunze 2025-03-09 15:21:12 +01:00
parent 2d3e8b2a56
commit 6702de359b
3 changed files with 41 additions and 0 deletions

View file

@ -14,6 +14,7 @@ from .service import (
ServiceOfferingPlan, ServiceOfferingPlan,
ServiceProvider, ServiceProvider,
) )
from .user import User
__all__ = [ __all__ = [
"BillingEntity", "BillingEntity",
@ -28,4 +29,5 @@ __all__ = [
"ServiceOffering", "ServiceOffering",
"ServiceOfferingPlan", "ServiceOfferingPlan",
"ServiceProvider", "ServiceProvider",
"User",
] ]

View file

@ -0,0 +1,38 @@
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
from django.utils.translation import gettext_lazy as _
class User(AbstractBaseUser):
"""The Django model provides a password and last_login field."""
email = models.EmailField(unique=True, verbose_name=_("Email address"))
first_name = models.CharField(
max_length=30, blank=True, verbose_name=_("First name")
)
last_name = models.CharField(max_length=30, blank=True, verbose_name=_("Last name"))
company = models.CharField(max_length=100, blank=True, verbose_name=_("Company"))
is_staff = models.BooleanField(
default=False,
verbose_name=_("Is staff"),
help_text=_("Staff users can log into this admin site."),
)
is_superuser = models.BooleanField(
default=False,
verbose_name=_("Is superuser"),
help_text=_(
"Superusers have all permissions without explicitly assigning them. Use with caution."
),
)
EMAIL_FIELD = "email"
USERNAME_FIELD = "email"
def __str__(self):
if self.first_name and self.last_name:
return f"{self.first_name} {self.last_name}"
return self.email
def normalize_username(self, username):
return super().normalize_username(username).strip().lower()

View file

@ -107,6 +107,7 @@ TEMPLATES = [
}, },
] ]
AUTH_USER_MODEL = "core.User"
AUTH_PASSWORD_VALIDATORS = [ AUTH_PASSWORD_VALIDATORS = [
{ {
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator" "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"