# -*- 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