Skip to content

🐛 [BUG] - server-nestjs : POST /api/v1/system/settings sans garde d'administration (bloque la bascule) #2722

Description

@shikanime

Description

Le contrôleur SystemSettingsController de server-nestjs (api/v1/system/settings) expose POST sans garde : ni UserGuard, ni @RequireAdminPermission('ManageSystem'), et aucune protection globale APP_GUARD n'existe dans l'application. Or la route legacy correspondante (apps/server/src/resources/system/settings/router.ts, upsertSystemSetting) exige AdminAuthorized.ManageSystem.

Ce défaut de parité bloque la bascule nginx-strangler de /api/v1/system/settings : aujourd'hui routée vers le legacy (garde active), elle deviendrait une écriture de configuration système non authentifiée au moment de la bascule. Le GET est volontairement public des deux côtés — parité correcte, ne pas ajouter de garde.

Issue découverte lors de l'audit de parité pré-bascule Vague 1 (voir la PR de bascule).

PRs liées

Issues liées

Exemples simples

Spécifications techniques

  • Ajouter @UseGuards(UserGuard) + @RequireAdminPermission('ManageSystem') sur upsert uniquement, même anatomie que SystemConfigController.
  • Le schéma (SystemSettingSchema) est déjà validé côté contrôleur — la garde est le seul écart.

Définition du fini

  • La fonctionnalité est terminée
  • Les tests liés à cette fonctionnalité ont été ajoutés (spec : POST sans session → 401/403)
  • La bascule /api/v1/system/settings est débloquée (garde vérifiée en parité du legacy)
  • La documentation liée a été ajoutée

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions