Corrections issues de la revue de code

- Limite de connexion par (e-mail, IP) et par IP : un tiers ne peut plus
  bloquer le compte admin depuis une autre adresse ; mémoire bornée.
- Ids canoniques uniquement (« 07 » contournait la protection du propre
  compte de l'admin).
- Export : un cadre réactivé entre deux requêtes ne fait plus planter.
- /auth/me lit le compte déjà chargé par requireAuth ; /auth/password et
  e-mail non textuel ne renvoient plus 500.
- Planning : une écriture réussie n'est plus perdue quand un rechargement
  du même mois répond avant elle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D5Bdayziw6tybgqETZoNSt
This commit is contained in:
Claude committed 2026-10-09 07:22:33 +00:00
1 parent 3df521ac30
commit 82fcaa1e0f
7 files changed
+68 -41

No files matched your search

+3 -1
View File
@@ -31,7 +31,9 @@ async function loadCompanyData(companyId, year, month) {
const cadres = cadreRows.map((c) => ({ id: c.id, fullName: c.full_name, entries: new Map() }));
const byId = new Map(cadres.map((c) => [c.id, c]));
for (const e of entryRows) {
byId.get(e.user_id).entries.set(`${e.entry_date}:${e.period}`, e.status);
// a cadre (re)activated between the two queries is simply left out
const cadre = byId.get(e.user_id);
if (cadre) cadre.entries.set(`${e.entry_date}:${e.period}`, e.status);
}
return { company, cadres };