auth: Convert DevAuthBackend to accept a realm object.

This commit is contained in:
Tim Abbott
2017-11-21 12:19:20 -08:00
parent 4968631d1b
commit 07bc31f818
4 changed files with 12 additions and 6 deletions

View File

@@ -282,7 +282,10 @@ class AuthBackendTest(ZulipTestCase):
def test_devauth_backend(self):
# type: () -> None
self.verify_backend(DevAuthBackend(),
good_kwargs=dict(dev_auth_username=self.get_username()))
good_kwargs=dict(dev_auth_username=self.get_username(),
realm=get_realm("zulip")),
bad_kwargs=dict(dev_auth_username=self.get_username(),
realm=get_realm("invalid")))
@override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipRemoteUserBackend',))
def test_remote_user_backend(self):

View File

@@ -586,7 +586,7 @@ def dev_direct_login(request, **kwargs):
email = request.POST['direct_email']
subdomain = get_subdomain(request)
realm = get_realm(subdomain)
user_profile = authenticate(dev_auth_username=email, realm_subdomain=realm.subdomain)
user_profile = authenticate(dev_auth_username=email, realm=realm)
if user_profile is None:
raise Exception("User cannot login")
do_login(request, user_profile)
@@ -615,7 +615,7 @@ def api_dev_fetch_api_key(request, username=REQ()):
return_data = {} # type: Dict[str, bool]
user_profile = authenticate(dev_auth_username=username,
realm_subdomain=realm.subdomain,
realm=realm,
return_data=return_data)
if return_data.get("inactive_realm"):
return json_error(_("Your realm has been deactivated."),

View File

@@ -67,7 +67,7 @@ def generate_all_emails(request):
assert result.status_code == 302
# New login email
logged_in = client.login(dev_auth_username=registered_email)
logged_in = client.login(dev_auth_username=registered_email, realm=realm)
assert logged_in
# New user invite and reminder emails

View File

@@ -533,14 +533,17 @@ class ZulipLDAPUserPopulator(ZulipLDAPAuthBackendBase):
class DevAuthBackend(ZulipAuthMixin):
# Allow logging in as any user without a password.
# This is used for convenience when developing Zulip.
def authenticate(self, dev_auth_username: Optional[str]=None, realm_subdomain: Optional[str]=None,
def authenticate(self, dev_auth_username: Optional[str]=None, realm: Optional[Realm]=None,
return_data: Optional[Dict[str, Any]]=None) -> Optional[UserProfile]:
assert dev_auth_username is not None
if realm is None:
return None
user_profile = common_get_active_user_by_email(dev_auth_username, return_data=return_data)
if user_profile is None:
return None
if not dev_auth_enabled(user_profile.realm):
if not dev_auth_enabled(realm):
return None
assert realm == user_profile.realm
return user_profile
class GitHubAuthBackend(SocialAuthMixin, GithubOAuth2):