Просмотр исходного кода

Encode strings to bytes before hashing for Python 3 support

Shouldn't affect Python 2
NeKit 9 лет назад
Родитель
Сommit
e1e24da011
4 измененных файлов с 5 добавлено и 5 удалено
  1. 1 1
      misago/admin/auth.py
  2. 2 2
      misago/core/serializer.py
  3. 1 1
      misago/users/avatars/store.py
  4. 1 1
      misago/users/utils.py

+ 1 - 1
misago/admin/auth.py

@@ -13,7 +13,7 @@ KEY_UPDATED = 'misago_admin_session_updated'
 
 def make_user_admin_token(user):
     formula = (str(user.pk), user.email, user.password, settings.SECRET_KEY)
-    return md5(':'.join(formula)).hexdigest()
+    return md5(':'.join(formula).encode()).hexdigest()
 
 
 # Admin session state controls

+ 2 - 2
misago/core/serializer.py

@@ -12,7 +12,7 @@ except ImportError:
 
 
 def _checksum(base):
-    return sha256('%s+%s' % (settings.SECRET_KEY, base)).hexdigest()[:14]
+    return sha256(('%s+%s' % (settings.SECRET_KEY, base)).encode()).hexdigest()[:14]
 
 
 def loads(dry):
@@ -20,7 +20,7 @@ def loads(dry):
     base = dry[14:]
 
     if _checksum(base) == checksum:
-        return pickle.loads(base64.decodestring(base))
+        return pickle.loads(base64.decodestring(base.encode()))
     else:
         raise ValueError("pickle checksum is invalid")
 

+ 1 - 1
misago/users/avatars/store.py

@@ -112,7 +112,7 @@ def get_avatars_dir_path(user=None):
         except AttributeError:
             user_pk = user
 
-        dir_hash = md5(str(user_pk)).hexdigest()
+        dir_hash = md5(str(user_pk).encode()).hexdigest()
         hash_path = [dir_hash[0:1], dir_hash[2:3]]
         return Path(os.path.join(AVATARS_STORE, *hash_path))
     else:

+ 1 - 1
misago/users/utils.py

@@ -2,4 +2,4 @@ import hashlib
 
 
 def hash_email(email):
-    return hashlib.md5(email.lower()).hexdigest()
+    return hashlib.md5(email.lower().encode()).hexdigest()