mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	auth: Convert DevAuthBackend to accept a realm object.
This commit is contained in:
		@@ -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):
 | 
			
		||||
 
 | 
			
		||||
@@ -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."),
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user