mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-17 21:48:02 +00:00
Hack in sha256 support - needs to be refactored
This commit is contained in:
23
ivatar/ivataraccount/migrations/0006_auto_20180626_1445.py
Normal file
23
ivatar/ivataraccount/migrations/0006_auto_20180626_1445.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 2.0.6 on 2018-06-26 14:45
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('ivataraccount', '0005_auto_20180522_1155'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='confirmedemail',
|
||||||
|
name='digest_sha256',
|
||||||
|
field=models.CharField(max_length=64, null=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='confirmedemail',
|
||||||
|
name='digest',
|
||||||
|
field=models.CharField(max_length=32),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -259,7 +259,8 @@ class ConfirmedEmail(BaseAccountModel):
|
|||||||
null=True,
|
null=True,
|
||||||
on_delete=models.deletion.CASCADE,
|
on_delete=models.deletion.CASCADE,
|
||||||
)
|
)
|
||||||
digest = models.CharField(max_length=64)
|
digest = models.CharField(max_length=32)
|
||||||
|
digest_sha256 = models.CharField(max_length=64, null=True)
|
||||||
objects = ConfirmedEmailManager()
|
objects = ConfirmedEmailManager()
|
||||||
|
|
||||||
class Meta: # pylint: disable=too-few-public-methods
|
class Meta: # pylint: disable=too-few-public-methods
|
||||||
@@ -284,6 +285,7 @@ class ConfirmedEmail(BaseAccountModel):
|
|||||||
self.digest = hashlib.md5(
|
self.digest = hashlib.md5(
|
||||||
self.email.strip().lower().encode('utf-8')
|
self.email.strip().lower().encode('utf-8')
|
||||||
).hexdigest()
|
).hexdigest()
|
||||||
|
self.digest_sha256 = hashlib.sha256(self.email.strip().lower().encode('utf-8')).hexdigest()
|
||||||
return super().save(force_insert, force_update, using, update_fields)
|
return super().save(force_insert, force_update, using, update_fields)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ class AvatarImageView(TemplateView):
|
|||||||
# Fetch by digest from mail
|
# Fetch by digest from mail
|
||||||
pass
|
pass
|
||||||
elif len(kwargs['digest']) == 64:
|
elif len(kwargs['digest']) == 64:
|
||||||
|
if model.objects.filter(digest=kwargs['digest']).count():
|
||||||
# Fetch by digest from OpenID
|
# Fetch by digest from OpenID
|
||||||
model = ConfirmedOpenId
|
model = ConfirmedOpenId
|
||||||
else: # pragma: no cover
|
else: # pragma: no cover
|
||||||
@@ -30,6 +31,9 @@ class AvatarImageView(TemplateView):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
obj = model.objects.get(digest=kwargs['digest'])
|
obj = model.objects.get(digest=kwargs['digest'])
|
||||||
|
except ObjectDoesNotExist:
|
||||||
|
try:
|
||||||
|
obj = model.objects.get(digest_sha256=kwargs['digest'])
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
# TODO: Use default!?
|
# TODO: Use default!?
|
||||||
raise Exception('Mail/openid ("%s") does not exist"' %
|
raise Exception('Mail/openid ("%s") does not exist"' %
|
||||||
|
|||||||
Reference in New Issue
Block a user