Skip to content
Snippets Groups Projects
Commit 2ec460f3 authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Make the User model more like the other models

parent eabe983c
No related branches found
No related tags found
No related merge requests found
......@@ -69,7 +69,7 @@ class SubmittableStreamForm(AbstractStreamForm):
User = get_user_model()
email = cleaned_data.get('email')
full_name = cleaned_data.get('full_name')
user = User.get_or_create_new(
user = User.objects.get_or_create(
email=email,
defaults={'full_name': full_name}
)
......
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import AbstractUser, BaseUserManager
from .utils import send_activation_email
class UserManager(BaseUserManager):
def get_or_create(self, defaults, **kwargs):
defaults.update(is_active=False)
user, created = super().get_or_create(defaults=defaults, **kwargs)
if created:
send_activation_email(user)
return user
class User(AbstractUser):
full_name = models.CharField(verbose_name='Full name', max_length=255, blank=True)
objects = UserManager()
class Meta:
unique_together = ('email',)
......@@ -18,15 +29,3 @@ class User(AbstractUser):
return self.full_name.strip()
return super().get_full_name()
def get_user_by_email(self, email):
email_field = getattr(self, 'EMAIL_FIELD', 'email')
return self.objects.filter(**{email_field + '__iexact': email})
@classmethod
def get_or_create_new(cls, defaults, **kwargs):
defaults.update(is_active=False)
user, created = cls.objects.get_or_create(defaults=defaults, **kwargs)
if created:
send_activation_email(user)
return user
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment