mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 06:53:25 +00:00
validator.py: Create a validator for login email.
This validator raises JsonableError exception. Fixes: #2748
This commit is contained in:
@@ -27,8 +27,12 @@ for any particular type of object.
|
|||||||
'''
|
'''
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
from django.core.validators import validate_email
|
||||||
import six
|
import six
|
||||||
from typing import Any, Callable, Iterable, Optional, Tuple, TypeVar
|
from typing import Any, Callable, Iterable, Optional, Tuple, TypeVar, Text
|
||||||
|
|
||||||
|
from zerver.lib.request import JsonableError
|
||||||
|
|
||||||
Validator = Callable[[str, Any], Optional[str]]
|
Validator = Callable[[str, Any], Optional[str]]
|
||||||
|
|
||||||
@@ -144,3 +148,10 @@ def equals(expected_val):
|
|||||||
'value': val})
|
'value': val})
|
||||||
return None
|
return None
|
||||||
return f
|
return f
|
||||||
|
|
||||||
|
def validate_login_email(email):
|
||||||
|
# type: (Text) -> None
|
||||||
|
try:
|
||||||
|
validate_email(email)
|
||||||
|
except ValidationError as err:
|
||||||
|
raise JsonableError(str(err.message))
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ from zerver.lib.actions import (
|
|||||||
do_reactivate_user,
|
do_reactivate_user,
|
||||||
do_set_realm_authentication_methods,
|
do_set_realm_authentication_methods,
|
||||||
)
|
)
|
||||||
|
from zerver.lib.validator import validate_login_email
|
||||||
|
from zerver.lib.request import JsonableError
|
||||||
from zerver.lib.initial_password import initial_password
|
from zerver.lib.initial_password import initial_password
|
||||||
from zerver.lib.sessions import get_session_dict_user
|
from zerver.lib.sessions import get_session_dict_user
|
||||||
from zerver.lib.test_classes import (
|
from zerver.lib.test_classes import (
|
||||||
@@ -1834,3 +1836,13 @@ class TestAdminSetBackends(ZulipTestCase):
|
|||||||
self.assertFalse(github_auth_enabled(realm))
|
self.assertFalse(github_auth_enabled(realm))
|
||||||
self.assertTrue(dev_auth_enabled(realm))
|
self.assertTrue(dev_auth_enabled(realm))
|
||||||
self.assertFalse(password_auth_enabled(realm))
|
self.assertFalse(password_auth_enabled(realm))
|
||||||
|
|
||||||
|
class LoginEmailValidatorTestCase(TestCase):
|
||||||
|
def test_valid_email(self):
|
||||||
|
# type: () -> None
|
||||||
|
validate_login_email(u'hamlet@zulip.com')
|
||||||
|
|
||||||
|
def test_invalid_email(self):
|
||||||
|
# type: () -> None
|
||||||
|
with self.assertRaises(JsonableError):
|
||||||
|
validate_login_email(u'hamlet')
|
||||||
|
|||||||
Reference in New Issue
Block a user