Add custom user model
This commit is contained in:
parent
2d3e8b2a56
commit
6702de359b
3 changed files with 41 additions and 0 deletions
|
@ -14,6 +14,7 @@ from .service import (
|
|||
ServiceOfferingPlan,
|
||||
ServiceProvider,
|
||||
)
|
||||
from .user import User
|
||||
|
||||
__all__ = [
|
||||
"BillingEntity",
|
||||
|
@ -28,4 +29,5 @@ __all__ = [
|
|||
"ServiceOffering",
|
||||
"ServiceOfferingPlan",
|
||||
"ServiceProvider",
|
||||
"User",
|
||||
]
|
||||
|
|
38
src/servala/core/models/user.py
Normal file
38
src/servala/core/models/user.py
Normal 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()
|
|
@ -107,6 +107,7 @@ TEMPLATES = [
|
|||
},
|
||||
]
|
||||
|
||||
AUTH_USER_MODEL = "core.User"
|
||||
AUTH_PASSWORD_VALIDATORS = [
|
||||
{
|
||||
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue