From fd52e50d5abcda3d27e32045433ac31db79cf712 Mon Sep 17 00:00:00 2001 From: Anilpixel Date: Tue, 25 Feb 2025 16:44:09 +0800 Subject: [PATCH] feat: OAuth - redirect direct to provider if just one provider exists --- flask_appbuilder/security/views.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/flask_appbuilder/security/views.py b/flask_appbuilder/security/views.py index ddc1d0b5e8..8a17f70d16 100644 --- a/flask_appbuilder/security/views.py +++ b/flask_appbuilder/security/views.py @@ -633,12 +633,16 @@ def login(self, provider: Optional[str] = None) -> WerkzeugResponse: return redirect(self.appbuilder.get_url_for_index) if provider is None: - return self.render_template( - self.login_template, - providers=self.appbuilder.sm.oauth_providers, - title=self.title, - appbuilder=self.appbuilder, - ) + providers = self.appbuilder.sm.oauth_providers + if len(providers) == 1: + provider = providers[0]["name"] + else: + return self.render_template( + self.login_template, + providers=providers, + title=self.title, + appbuilder=self.appbuilder, + ) log.debug("Going to call authorize for: %s", provider) random_state = generate_random_string()