# Path: user_management/utils/notifications.py
# def password_reset_email_context(notification):
# def validation_email_context(notification):
# def email_handler(notification, email_context):
# def password_reset_email_handler(notification):
# def validation_email_handler(notification):
# class PasswordResetNotification(Notification):
# class ValidationNotification(Notification):


from django.contrib.auth.models import BaseUserManager
from django.contrib.auth.tokens import default_token_generator
from django.contrib.postgres.fields import CIEmailField
from django.contrib.sites.models import Site
from django.core import checks, signing
from django.db import models
from django.utils import timezone
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode
from django.utils.translation import ugettext_lazy as _
from user_management.utils import notifications
        abstract = True


class ActiveUserMixin(models.Model):
    is_active = models.BooleanField(_('active'), default=True)

    class Meta:
        abstract = True


class VerifyEmailManager(UserManager):
    def create_superuser(self, email, password, **extra_fields):
        fields = {
            'is_active': True,
        }
        fields.update(extra_fields)
        user = super(VerifyEmailManager, self).create_superuser(
            email,
            password,
            **fields)
        return user


class EmailVerifyUserMethodsMixin:
    """
    Define how validation and password reset emails are sent.

    `password_reset_notification` and `validation_notification` can be overriden to
    provide custom settings to send emails.
    """

# Path: user_management/utils/notifications.py
# def password_reset_email_context(notification):
# def validation_email_context(notification):
# def email_handler(notification, email_context):
# def password_reset_email_handler(notification):
# def validation_email_handler(notification):
# class PasswordResetNotification(Notification):
# class ValidationNotification(Notification):


# Path: user_management/models/mixins.py
from django.contrib.auth.models import BaseUserManager
from django.contrib.auth.tokens import default_token_generator
from django.contrib.postgres.fields import CIEmailField
from django.contrib.sites.models import Site
from django.core import checks, signing
from django.db import models
from django.utils import timezone
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode
from django.utils.translation import ugettext_lazy as _
from user_management.utils import notifications

        abstract = True


class ActiveUserMixin(models.Model):
    is_active = models.BooleanField(_('active'), default=True)

    class Meta:
        abstract = True


class VerifyEmailManager(UserManager):
    def create_superuser(self, email, password, **extra_fields):
        fields = {
            'is_active': True,
        }
        fields.update(extra_fields)
        user = super(VerifyEmailManager, self).create_superuser(
            email,
            password,
            **fields)
        return user


class EmailVerifyUserMethodsMixin:
    """
    Define how validation and password reset emails are sent.

    `password_reset_notification` and `validation_notification` can be overriden to
    provide custom settings to send emails.
    """

    password_reset_notification = notifications.PasswordResetNotification