mirror of https://github.com/zulip/zulip.git
backends.py: Expose backends that require email usernames
This commit is contained in:
parent
28beddfd76
commit
5f41f3c3cb
|
@ -44,7 +44,7 @@ from zproject.backends import ZulipDummyBackend, EmailAuthBackend, \
|
|||
GoogleMobileOauth2Backend, ZulipRemoteUserBackend, ZulipLDAPAuthBackend, \
|
||||
ZulipLDAPUserPopulator, DevAuthBackend, GitHubAuthBackend, ZulipAuthMixin, \
|
||||
dev_auth_enabled, password_auth_enabled, github_auth_enabled, \
|
||||
SocialAuthMixin, AUTH_BACKEND_NAME_MAP
|
||||
require_email_format_usernames, SocialAuthMixin, AUTH_BACKEND_NAME_MAP
|
||||
|
||||
from zerver.views.auth import (maybe_send_to_registration,
|
||||
login_or_register_remote_user)
|
||||
|
@ -2174,6 +2174,43 @@ class TestPasswordAuthEnabled(ZulipTestCase):
|
|||
realm = Realm.objects.get(string_id='zulip')
|
||||
self.assertTrue(password_auth_enabled(realm))
|
||||
|
||||
class TestRequireEmailFormatUsernames(ZulipTestCase):
|
||||
def test_require_email_format_usernames_for_ldap_with_append_domain(self):
|
||||
# type: () -> None
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',),
|
||||
LDAP_APPEND_DOMAIN="zulip.com"):
|
||||
realm = Realm.objects.get(string_id='zulip')
|
||||
self.assertFalse(require_email_format_usernames(realm))
|
||||
|
||||
def test_require_email_format_usernames_for_ldap_with_email_attr(self):
|
||||
# type: () -> None
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',),
|
||||
LDAP_EMAIL_ATTR="email"):
|
||||
realm = Realm.objects.get(string_id='zulip')
|
||||
self.assertFalse(require_email_format_usernames(realm))
|
||||
|
||||
def test_require_email_format_usernames_for_email_only(self):
|
||||
# type: () -> None
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.EmailAuthBackend',)):
|
||||
realm = Realm.objects.get(string_id='zulip')
|
||||
self.assertTrue(require_email_format_usernames(realm))
|
||||
|
||||
def test_require_email_format_usernames_for_email_and_ldap_with_email_attr(self):
|
||||
# type: () -> None
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.EmailAuthBackend',
|
||||
'zproject.backends.ZulipLDAPAuthBackend'),
|
||||
LDAP_EMAIL_ATTR="email"):
|
||||
realm = Realm.objects.get(string_id='zulip')
|
||||
self.assertFalse(require_email_format_usernames(realm))
|
||||
|
||||
def test_require_email_format_usernames_for_email_and_ldap_with_append_email(self):
|
||||
# type: () -> None
|
||||
with self.settings(AUTHENTICATION_BACKENDS=('zproject.backends.EmailAuthBackend',
|
||||
'zproject.backends.ZulipLDAPAuthBackend'),
|
||||
LDAP_APPEND_DOMAIN="zulip.com"):
|
||||
realm = Realm.objects.get(string_id='zulip')
|
||||
self.assertFalse(require_email_format_usernames(realm))
|
||||
|
||||
class TestMaybeSendToRegistration(ZulipTestCase):
|
||||
def test_sso_only_when_preregistration_user_does_not_exist(self):
|
||||
# type: () -> None
|
||||
|
|
|
@ -83,6 +83,13 @@ def any_oauth_backend_enabled(realm=None):
|
|||
'OR' for login with Google"""
|
||||
return auth_enabled_helper([u'GitHub', u'Google'], realm)
|
||||
|
||||
def require_email_format_usernames(realm=None):
|
||||
# type: (Optional[Realm]) -> bool
|
||||
if ldap_auth_enabled(realm):
|
||||
if settings.LDAP_EMAIL_ATTR or settings.LDAP_APPEND_DOMAIN:
|
||||
return False
|
||||
return True
|
||||
|
||||
def common_get_active_user_by_email(email, return_data=None):
|
||||
# type: (Text, Optional[Dict[str, Any]]) -> Optional[UserProfile]
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue