diff --git a/loops/locales/de/LC_MESSAGES/loops.mo b/loops/locales/de/LC_MESSAGES/loops.mo index bd21216..c4a341f 100644 Binary files a/loops/locales/de/LC_MESSAGES/loops.mo and b/loops/locales/de/LC_MESSAGES/loops.mo differ diff --git a/loops/locales/de/LC_MESSAGES/loops.po b/loops/locales/de/LC_MESSAGES/loops.po index 93cc7d6..fd608cf 100644 --- a/loops/locales/de/LC_MESSAGES/loops.po +++ b/loops/locales/de/LC_MESSAGES/loops.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: 3.0.1\n" "POT-Creation-Date: 2007-05-22 12:00 CET\n" -"PO-Revision-Date: 2025-10-26 12:00 CET\n" +"PO-Revision-Date: 2025-10-27 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -1478,6 +1478,9 @@ msgstr "Mit OpenID Connect (Zitadel) anmelden" msgid "edit-external-user" msgstr "Login-Einstellungen bearbeiten" +msgid "set-authentication-method" +msgstr "Login-Verfahren einstellen" + msgid "authentication-method" msgstr "Login-Verfahren" diff --git a/loops/organize/browser/member.py b/loops/organize/browser/member.py index c2b6362..278097b 100644 --- a/loops/organize/browser/member.py +++ b/loops/organize/browser/member.py @@ -61,13 +61,6 @@ class PersonalInfo(ConceptView): def view(self): return self - @Lazy - def selectAuthMethod(self): - return getattr(config, 'authentication_method', 'legacy') == 'cookie' - - def getAuthMethod(self): - return self.request.cookies.get('loops_auth_method') or 'legacy' - @Lazy def extUserLink(self): from scopes.web.auth.oidc import IExternalPrincipal diff --git a/loops/organize/browser/view_macros.pt b/loops/organize/browser/view_macros.pt index dce06ff..efb50f4 100644 --- a/loops/organize/browser/view_macros.pt +++ b/loops/organize/browser/view_macros.pt @@ -60,20 +60,6 @@
  • Edit Filters
  • -
  • - Authentication Method: - -
  • diff --git a/loops/server/auth.py b/loops/server/auth.py index 039d720..d9f151e 100644 --- a/loops/server/auth.py +++ b/loops/server/auth.py @@ -23,19 +23,18 @@ def registerAuthUtility(config): class LoginPage: index = ViewPageTemplateFile('loginform.pt') + showSelection = False def __init__(self, context, request): self.context = context self.request = request - self.authMethod = getattr(config, 'authentication_method', 'legacy') + self.authMethod = getConfigAuthMethod() if self.authMethod == 'cookie': self.authMethod = getAuthMethodCookieValue(request) - self.oidc_allowed = self.authMethod in ('oidc', 'select') + self.oidc_allowed = self.showSelection or self.authMethod in ('oidc', 'select') def __call__(self): - print('***', self.request.principal.id) - print('***', self.authMethod) - if self.authMethod == 'oidc': + if self.authMethod == 'oidc' and not self.showSelection: return self.authOidc() return self.index() @@ -43,8 +42,18 @@ class LoginPage: oidc.Authenticator(self.request).login() return '' + +class LoginPageSelect(LoginPage): + + @property + def showSelection(self): + return getConfigAuthMethod() == 'cookie' + + +def getConfigAuthMethod(): + return getattr(config, 'authentication_method', 'legacy') + def getAuthMethodCookieValue(request): - print('***', dict(request.cookies)) return request.cookies.get('loops_auth_method') or 'legacy' diff --git a/loops/server/loginform.pt b/loops/server/loginform.pt index 2f80420..120cafb 100644 --- a/loops/server/loginform.pt +++ b/loops/server/loginform.pt @@ -20,6 +20,7 @@
    +

    Please provide Login Information

    @@ -43,7 +44,6 @@

    -
    Password
    @@ -58,6 +58,23 @@ +
    +
    +

    Set Authentication Method

    + Authentication Method: + +
    diff --git a/loops/server/loginform.zcml b/loops/server/loginform.zcml index ccf6dd5..9cd04db 100644 --- a/loops/server/loginform.zcml +++ b/loops/server/loginform.zcml @@ -8,5 +8,11 @@ permission="zope.Public" layer="cybertools.browser.loops.Loops" /> + +