Commit Graph
9 Commits
Author SHA1 Message Date
Claude 73c74bf579 Merge de main : report du masquage des secrets dans la nouvelle page Paramètres
La page Paramètres a été déplacée dans settings/client.tsx (onglets). Le
conflit sur page.tsx est résolu en gardant la version de main ; les
changements de l'interface y sont reportés : champs mot de passe
PostgreSQL et Qlik vides avec « Enregistré — inchangé si vide », test Qlik
possible avec un mot de passe enregistré, plus de mot de passe relu depuis
le serveur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RkfUui3qGg2zmu3uHWjNXJ
2026-10-04 06:40:22 +00:00
Claude af12527731 fix(sécurité): réserver les actions des Paramètres aux administrateurs et masquer les secrets
Les actions serveur de src/features/settings/actions.ts étaient appelables
par n'importe quel utilisateur connecté : la restriction de /settings dans le
middleware ne protège pas une action serveur. Un simple utilisateur pouvait
lire l'URL PostgreSQL, le mot de passe Qlik et les clés IA, réécrire la
configuration (puis refreshDb()), ou faire appeler une URL arbitraire au
serveur via les boutons « Tester ».

- requireAdmin() partagé dans src/lib/auth.ts, appelé en tête de chaque
  action des Paramètres ; il remplace les deux copies locales d'ensureAdmin()
  de user-actions.ts et api-key-actions.ts.
- getSavedDatabaseConfig ne renvoie plus aucun secret : URL sans mot de
  passe, mot de passe Qlik et clés IA remplacés par des booléens has*.
- Un mot de passe laissé vide conserve celui enregistré (enregistrement et
  test), uniquement pour le même hôte/utilisateur afin qu'il ne puisse pas
  être envoyé à un autre serveur.
- saveDatabaseSettings n'écrase plus les clés et modèles IA quand la page
  n'envoie que l'URL (ils étaient effacés à chaque sauvegarde).
- Le diagnostic de l'API FF passe dans lib/api-ff-client (diagnoseFfApi) :
  /api/ff-status reste accessible à tous sans exposer l'action admin.
- Le mot de passe PostgreSQL n'est plus persisté dans le localStorage.

Les routes /api/admin/** et sync-settings.ts (module serveur, pas une
action) étaient déjà correctement protégées : inchangées.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RkfUui3qGg2zmu3uHWjNXJ
2026-10-04 06:35:35 +00:00
Claude 220ca2263a feat(ui): lot 3 — toutes les pages lisibles, cohérentes et en français clair
Chaque page reprend le socle du lot 2 : en-tête avec une phrase
d'explication, couleurs du thème (plus de pages figées en blanc), textes
de 12 px minimum, noms de magasins, infobulles sur le jargon, retours par
toast / confirmation, états vides et d'erreur expliqués.

- Accueil : CA, tickets et panier moyen d'hier vs N-1, par magasin, top 10
  avec lien vers la fiche produit.
- Révision d'assortiment : un seul endroit pour enregistrer et exporter
  (menu Export unique, mêmes droits pour tous), annulation confirmée, sens
  des gammes affiché partout, magasin choisi en un clic, colonnes nommées
  en clair, bandeau de progression au lieu de la fenêtre floue, droits lus
  côté serveur, ligne sélectionnée opaque sur les colonnes figées.
- Recherche produit, Stocks à surveiller (export FF inchangé), Meilleures
  ventes, Ventes par mois (dernier mois complet par défaut), Publicités,
  Commandes fournisseurs, Historique, Paramètres (onglets), Synchronisation
  et Connexion migrés sur DataTable / Tabs / Card.
- Le nom de l'utilisateur est transmis à la session (affiché dans
  l'en-tête).
- Composants devenus inutiles supprimés (anciennes fenêtres modales,
  export-dropdown, financial-cell, supplier-selection).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AcA129WzGTH6zxPHFBGWmn
2026-10-03 21:05:46 +00:00
Michael 69e2f9c325 feat: Implement NextAuth authentication with credentials, database and JSON fallback, including admin seeding and password management. 2026-03-10 12:24:30 +01:00
Michael 47872a994f feat: Introduce NextAuth.js for authentication, including default admin seeding and user table auto-creation. 2026-03-10 11:38:12 +01:00
Michael a03fd64b5d feat: Implement NextAuth for credentials-based authentication and add initial admin user seeding logic. 2026-02-22 14:20:31 +01:00
Michael cfd079fbf5 feat: add settings page for database, OpenRouter, score, theme, and display density configurations. 2026-02-22 14:16:49 +01:00
Michael 359d196c4d feat: implement user authentication and authorization with NextAuth, including user schema, password hashing, and role-based access control. 2026-02-22 14:11:36 +01:00
Michael 3544c0c898 feat(grid): ajout algorithme score produit avec parametrage dynamique et page d'aide 2026-02-21 04:00:51 +01:00