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