mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
Merge pull request #1599 from Toniob/scheme_fix
fix a bug with python3 showing no scheme available in settings
This commit is contained in:
@@ -6,6 +6,8 @@ Password hashers for Modoboa.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.utils.encoding import smart_text
|
||||
|
||||
from modoboa.core.password_hashers.advanced import ( # NOQA:F401
|
||||
BLFCRYPTHasher, MD5CRYPTHasher, SHA256CRYPTHasher, SHA512CRYPTHasher
|
||||
)
|
||||
@@ -40,7 +42,7 @@ def get_dovecot_schemes():
|
||||
except OSError:
|
||||
pass
|
||||
else:
|
||||
supported_schemes = ["{{{}}}".format(scheme)
|
||||
supported_schemes = ["{{{}}}".format(smart_text(scheme))
|
||||
for scheme in schemes.split()]
|
||||
|
||||
if not supported_schemes:
|
||||
|
||||
@@ -12,7 +12,7 @@ from django.core import mail
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.core.password_hashers import get_password_hasher
|
||||
from modoboa.core.password_hashers import get_password_hasher, get_dovecot_schemes
|
||||
from modoboa.lib.tests import NO_SMTP, ModoTestCase
|
||||
from .. import factories, models
|
||||
|
||||
@@ -71,7 +71,7 @@ class AuthenticationTestCase(ModoTestCase):
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertTrue(response.url.endswith(reverse("core:dashboard")))
|
||||
|
||||
def test_password_scheme(self):
|
||||
def test_password_schemes(self):
|
||||
"""Validate password scheme changes."""
|
||||
username = "user@test.com"
|
||||
password = "toto"
|
||||
@@ -104,6 +104,41 @@ class AuthenticationTestCase(ModoTestCase):
|
||||
user.refresh_from_db()
|
||||
self.assertTrue(user.password.startswith(pw_hash.scheme))
|
||||
|
||||
def test_supported_schemes(self):
|
||||
"""Validate dovecot supported schemes."""
|
||||
supported_schemes = get_dovecot_schemes()
|
||||
self.assertEqual(supported_schemes,
|
||||
["{MD5}",
|
||||
"{MD5-CRYPT}",
|
||||
"{SHA}",
|
||||
"{SHA1}",
|
||||
"{SHA256}",
|
||||
"{SHA512}",
|
||||
"{SMD5}",
|
||||
"{SSHA}",
|
||||
"{SSHA256}",
|
||||
"{SSHA512}",
|
||||
"{PLAIN}",
|
||||
"{CLEAR}",
|
||||
"{CLEARTEXT}",
|
||||
"{PLAIN-TRUNC}",
|
||||
"{CRAM-MD5}",
|
||||
"{SCRAM-SHA-1}",
|
||||
"{HMAC-MD5}",
|
||||
"{DIGEST-MD5}",
|
||||
"{PLAIN-MD4}",
|
||||
"{PLAIN-MD5}",
|
||||
"{LDAP-MD5}",
|
||||
"{LANMAN}",
|
||||
"{NTLM}",
|
||||
"{OTP}",
|
||||
"{SKEY}",
|
||||
"{RPA}",
|
||||
"{PBKDF2}",
|
||||
"{CRYPT}",
|
||||
"{SHA256-CRYPT}",
|
||||
"{SHA512-CRYPT}"])
|
||||
|
||||
|
||||
class PasswordResetTestCase(ModoTestCase):
|
||||
"""Test password reset service."""
|
||||
|
||||
Reference in New Issue
Block a user