diff --git a/app/eventyay/eventyay_common/templates/eventyay_common/auth/login.html b/app/eventyay/eventyay_common/templates/eventyay_common/auth/login.html index 9cbb8dc8fb..2286471641 100644 --- a/app/eventyay/eventyay_common/templates/eventyay_common/auth/login.html +++ b/app/eventyay/eventyay_common/templates/eventyay_common/auth/login.html @@ -49,12 +49,47 @@
diff --git a/app/eventyay/eventyay_common/views/auth.py b/app/eventyay/eventyay_common/views/auth.py index 674bc8b6ba..86e1e98cf0 100644 --- a/app/eventyay/eventyay_common/views/auth.py +++ b/app/eventyay/eventyay_common/views/auth.py @@ -140,7 +140,23 @@ def login(request): request, form.user_cache, form.cleaned_data.get('keep_logged_in', False) ) else: - form = LoginForm(backend=backend, request=request) + gs = GlobalSettingsObject() + login_providers = gs.settings.get('login_providers', as_type=dict) + + # Check if there's a preferred provider - if so, pre-select "Keep me logged in" + has_preferred_provider = any( + settings.get('preferred', False) + for settings in login_providers.values() + if settings.get('state', False) + ) if login_providers else False + + # Initialize form with keep_logged_in pre-selected if there's a preferred provider + initial_data = {} + if has_preferred_provider and 'keep_logged_in' in LoginForm(backend=backend, request=request).fields: + initial_data['keep_logged_in'] = True + + form = LoginForm(backend=backend, request=request, initial=initial_data) + ctx['form'] = form ctx['can_register'] = settings.EVENTYAY_REGISTRATION ctx['can_reset'] = settings.EVENTYAY_PASSWORD_RESET diff --git a/app/eventyay/plugins/socialauth/schemas/login_providers.py b/app/eventyay/plugins/socialauth/schemas/login_providers.py index fc9e6b6d71..827dca3995 100644 --- a/app/eventyay/plugins/socialauth/schemas/login_providers.py +++ b/app/eventyay/plugins/socialauth/schemas/login_providers.py @@ -5,6 +5,7 @@ class ProviderConfig(BaseModel): state: bool = Field(description='State of this providers', default=False) client_id: str = Field(description='Client ID of this provider', default='') secret: str = Field(description='Secret of this provider', default='') + preferred: bool = Field(description='Is this the preferred login method', default=False) class LoginProviders(BaseModel): diff --git a/app/eventyay/plugins/socialauth/templates/socialauth/social_auth_settings.html b/app/eventyay/plugins/socialauth/templates/socialauth/social_auth_settings.html index 6df5f8a539..76cb9f53f8 100644 --- a/app/eventyay/plugins/socialauth/templates/socialauth/social_auth_settings.html +++ b/app/eventyay/plugins/socialauth/templates/socialauth/social_auth_settings.html @@ -4,89 +4,106 @@ {% load rich_text %} {% block title %}{% trans "Social login settings" %}{% endblock %} + {% block content %} - -