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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions