Gestion de bibliothèque personnelle auto-hébergée : catalogue, prêts, scan de code-barres, consultation hors-ligne. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
namespace MaBibli.Shared.Dtos;
|
|
|
|
/// <summary>
|
|
/// Identité de la personne connectée, telle que fournie par les en-têtes SSOwat de YunoHost.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// En développement il n'y a pas de SSOwat : un utilisateur simulé est configuré
|
|
/// (<c>Identite:UtilisateurSimule</c>), conformément à CLAUDE.md qui demande de simuler
|
|
/// plutôt que de désactiver l'authentification.
|
|
/// </remarks>
|
|
public record UtilisateurCourant
|
|
{
|
|
/// <summary><c>YNH_USER</c>. <c>null</c> si l'identité n'a pas pu être déterminée.</summary>
|
|
public string? Identifiant { get; init; }
|
|
|
|
/// <summary><c>YNH_USER_EMAIL</c>.</summary>
|
|
public string? Email { get; init; }
|
|
|
|
/// <summary><c>YNH_USER_FULLNAME</c> — évite une requête LDAP pour l'affichage.</summary>
|
|
public string? NomComplet { get; init; }
|
|
|
|
/// <summary>Vrai si l'identité provient de la configuration de développement, pas de SSOwat.</summary>
|
|
public bool Simule { get; init; }
|
|
|
|
/// <summary>Libellé à afficher, avec repli sur l'identifiant.</summary>
|
|
public string Affichage =>
|
|
NomComplet is { Length: > 0 } ? NomComplet : Identifiant ?? "inconnu";
|
|
|
|
public static readonly UtilisateurCourant Anonyme = new();
|
|
}
|