diff --git a/Makefile b/Makefile index 23d4023..334d139 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ sync: uv sync --extra dev seed: + uv run alembic upgrade head uv run python -m scripts.seed dev: diff --git a/app/services/ldap.py b/app/services/ldap.py index 77e5c85..8654bae 100644 --- a/app/services/ldap.py +++ b/app/services/ldap.py @@ -6,6 +6,8 @@ blocking the event loop. Login builds the user's DN from successful profile is provisioned locally on first sign-in. """ +import logging + from dataclasses import dataclass from fastapi.concurrency import run_in_threadpool @@ -40,10 +42,9 @@ def _bind_and_fetch(username: str, password: str) -> LdapIdentity | None: get_info=ldap3.NONE, ) try: - conn = ldap3.Connection( - server, user=user_dn, password=password, auto_bind=True - ) - except LDAPException: + conn = ldap3.Connection(server, user=user_dn, password=password, auto_bind=True) + except LDAPException as e: + logging.exception("Failed to log into LDAP for user %s", user_dn) # Wrong credentials, unreachable server, or a refused bind. return None