Skip to content

Commit c64c2d2

Browse files
fix: Add resiliency to LDAP admin filter (#6766)
1 parent 8b4111d commit c64c2d2

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

mealie/core/security/providers/ldap_provider.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,16 @@ def get_user(self) -> PrivateUser | None:
176176
)
177177

178178
if settings.LDAP_ADMIN_FILTER:
179-
should_be_admin = len(conn.search_s(user_dn, ldap.SCOPE_BASE, settings.LDAP_ADMIN_FILTER, [])) > 0
179+
try:
180+
should_be_admin = len(conn.search_s(user_dn, ldap.SCOPE_BASE, settings.LDAP_ADMIN_FILTER, [])) > 0
181+
except (ldap.FILTER_ERROR, ldap.NO_SUCH_OBJECT) as e:
182+
self._logger.warning(
183+
"Unable to determine if LDAP user should be an admin, defaulting to False. "
184+
"Is the LDAP_ADMIN_FILTER correct?"
185+
)
186+
self._logger.warning(f"{e.__class__.__name__}: {e}")
187+
should_be_admin = False
188+
180189
if user.admin != should_be_admin:
181190
self._logger.debug(f"[LDAP] {'Setting' if should_be_admin else 'Removing'} user as admin")
182191
user.admin = should_be_admin

0 commit comments

Comments
 (0)