Răsfoiți Sursa

fix(auth/ldap): Extract user attribute from list in _login3

This commit modifies `_login3` to check if the attribute value is a
list and, if so, extracts the first element (`[0]`) as the login
identifier. If the value is not a list, it's used directly (fallback).
Miles Liu 10 luni în urmă
părinte
comite
24138389ed
1 a modificat fișierele cu 4 adăugiri și 1 ștergeri
  1. 4 1
      radicale/auth/ldap.py

+ 4 - 1
radicale/auth/ldap.py

@@ -248,7 +248,10 @@ class Auth(auth.BaseAuth):
                 logger.debug("_login3 LDAP groups of user: %s", ",".join(self._ldap_groups))
             if self._ldap_user_attr:
                 if user_entry['attributes'][self._ldap_user_attr]:
-                    login = user_entry['attributes'][self._ldap_user_attr]
+                    if isinstance(user_entry['attributes'][self._ldap_user_attr], list):
+                        login = user_entry['attributes'][self._ldap_user_attr][0]
+                    else:
+                        login = user_entry['attributes'][self._ldap_user_attr]
                     logger.debug(f"_login3 user set to: '{login}'")
             conn.unbind()
             logger.debug(f"_login3 {login} successfully authenticated")