Source code for tcms.kiwi_auth.models

# -*- coding: utf-8 -*-

import datetime
import secrets

from django.conf import settings
from django.db import models


[docs] class UserActivationKey(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) activation_key = models.CharField(max_length=64, null=True, blank=True) key_expires = models.DateTimeField(null=True, blank=True)
[docs] @classmethod def set_random_key_for_user(cls, user, force=False): activation_key = secrets.token_hex() # Create and save their profile user_activation_key, created = cls.objects.get_or_create(user=user) if created or force: user_activation_key.activation_key = activation_key user_activation_key.key_expires = ( datetime.datetime.today() + datetime.timedelta(7) ) user_activation_key.save() return user_activation_key