You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

28 lines
1.1 KiB

# -*- coding: utf-8 -*-
import hashlib
from random import random
from django.db import models
class ConfirmEmailManager(models.Manager):
def confirm(self, user):
"""Создает или обновляет запись, что email подтвержден."""
rec, created = self.get_or_create(user=user, defaults={'is_confirmed': True,})
return rec
def unconfirm(self, user):
"""Создает или обновляет запись, что нужно подтвердить email."""
rec, created = self.get_or_create(user=user, defaults={'is_confirmed': False,})
return rec
class ResetKeyManager(models.Manager):
def create_key(self, user):
"""Создает или обновляет ключ восстановления пароля."""
key = hashlib.sha1('%s' % random()).hexdigest()
reset_key, created = self.get_or_create(user=user, defaults={'key': key,})
if not created:
reset_key.key = key # обновить ключ
reset_key.save()
return reset_key