mailing: fix case issues

This commit is contained in:
Élie Bouttier 2017-10-04 11:40:40 +02:00
parent 20a67eddc2
commit 10db5642df
2 changed files with 6 additions and 5 deletions

View File

@ -12,7 +12,7 @@ import hashlib
def generate_message_token():
# /!\ birthday problem
return get_random_string(length=32)
return get_random_string(length=32, allowed_chars='abcdefghijklmnopqrstuvwxyz0123456789')
def hexdigest_sha256(*args):

View File

@ -1,4 +1,5 @@
from django.conf import settings
from django.db import models
import imaplib
import ssl
@ -111,12 +112,12 @@ def process_email(raw_email):
token = m.group('token')
key = token[64:]
try:
thread = MessageThread.objects.get(token=token[:32])
sender = MessageCorrespondent.objects.get(token=token[32:64])
except models.DoesNotExist:
thread = MessageThread.objects.get(token__iexact=token[:32])
sender = MessageCorrespondent.objects.get(token__iexact=token[32:64])
except models.ObjectDoesNotExist:
raise InvalidTokenException
if key != hexdigest_sha256(settings.SECRET_KEY, thread.token, sender.token)[:16]:
if key.lower() != hexdigest_sha256(settings.SECRET_KEY, thread.token, sender.token)[:16]:
raise InvalidKeyException
Message.objects.create(thread=thread, from_email=sender.email, content=content)