Top bar: affiche display_name (Prenom NOM) + (AD) si LDAP + login en gris

This commit is contained in:
Pierre & Lumière 2026-04-15 12:00:41 +02:00
parent 67fa28a2af
commit 2f880da275
2 changed files with 16 additions and 4 deletions

View File

@ -88,9 +88,18 @@ async def login(request: Request, username: str = Form(...), password: str = For
log_login_failed(db, request, username)
db.commit()
return err_template("Mot de passe incorrect")
# Include mode in JWT token
token = create_access_token({"sub": row.username, "role": row.role, "uid": row.id, "mode": mode})
user = {"sub": row.username, "role": row.role, "uid": row.id, "mode": mode}
# Include display_name + auth_type dans le JWT pour affichage propre
display_row = db.execute(text(
"SELECT display_name, auth_type FROM users WHERE id=:uid"
), {"uid": row.id}).fetchone()
display_name = display_row.display_name if display_row else row.username
auth_type = display_row.auth_type if display_row else "local"
token = create_access_token({
"sub": row.username, "role": row.role, "uid": row.id, "mode": mode,
"display": display_name, "auth": auth_type,
})
user = {"sub": row.username, "role": row.role, "uid": row.id, "mode": mode,
"display": display_name, "auth": auth_type}
log_login(db, request, user)
db.commit()
# Redirect

View File

@ -164,7 +164,10 @@
<!-- Top bar -->
<header class="flex items-center justify-end px-6 py-2 border-b border-cyber-border bg-cyber-card">
<div class="flex items-center gap-3">
<span class="text-sm text-gray-400">{{ user.sub }}</span>
<span class="text-sm text-cyber-accent font-medium">{{ user.display or user.sub }}</span>
{% if user.auth == 'ldap' %}<span class="text-xs text-gray-500">(AD)</span>{% endif %}
<span class="text-xs text-gray-500">·</span>
<span class="text-xs text-gray-400">{{ user.sub }}</span>
<span class="badge badge-blue">{{ user.role }}</span>
<a href="/logout" class="btn-sm bg-cyber-border text-gray-300 hover:bg-red-900/40 hover:text-cyber-red transition-colors">Deconnexion</a>
</div>