Files
bugsink/users/models.py
Klaas van Schelven 95cb39f5af Implement 'send_email_alerts'
* cascading from team to project; user is base-level-default
* implemented at form-level
* implemented when emails are actually sent
2024-06-13 13:23:14 +02:00

32 lines
1.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import secrets
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.conf import settings
class User(AbstractUser):
# > If youre starting a new project, its highly recommended to set up a custom user model, even if the default
# > User model is sufficient for you. This model behaves identically to the default user model, but youll be able
# > to customize it in the future if the need arises
# (The above is no longer the only reason for a custom User model, since we started introducing custom fields.
# Regarding those fields, there is some pressure in the docs to put UserProfile fields in a separate model, but
# as long as the number of fields is small I think the User model makes more sense. We can always push them out
# later)
send_email_alerts = models.BooleanField(default=True, blank=True)
class Meta:
db_table = 'auth_user'
class EmailVerification(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
email = models.EmailField() # redundant, but future-proof for when we allow multiple emails per user
token = models.CharField(max_length=64, default=secrets.token_urlsafe, blank=False, null=False)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.user} ({self.email})"