Skip to content

[NestJS] Harmoniser les permissions par défaut legacy/server-nestjs pour éviter des échecs client #2351

Description

@shikanime

Contexte

Les permissions par défaut legacy sont encore actives dans server et server-nestjs, notamment everyonePerms non nul par défaut et un rôle admin initialisé à 0n. Cela empêche un comportement réel “least privilege by default”, et risque des régressions client lors du rapprochement des stacks.

Impact

  • Nouveaux projets/membres : surface d’accès par défaut trop large.
  • Harmonisation legacy -> NestJS : risque de régression fonctionnelle si non planifié.

Confirmé

Point Légende Risque
apps/server-nestjs/src/modules/admin-role/admin-role.service.ts:43 Nouveau rôle admin = 0n Désalignement legacy
apps/server-nestjs/src/modules/admin-role/admin-role.controller.ts:15 GET /api/v1/admin/roles ouvert aux users auth Exception legacy
apps/server/src/prisma/schema/project.prisma:111, apps/server-nestjs/.../project.prisma:111 everyonePerms @default(896) Défaut “tout le monde”
packages/shared/src/utils/permissions.ts:22-33, apps/server-nestjs/src/modules/keycloak/keycloak.service.ts:643 everyonePerms appliqué comme base permissions Overprivilege implicite
apps/client/src/components/ProjectRoles.vue:23,26 Nouveau rôle projet = 0n Désalignement UX
migrations 20260217144930_enable_legacy_permissions Flag legacy supprimé Historique seulement

À vérifier

  • Seed/création projet dans NestJS : valeur cible de everyonePerms.
  • Autres routes sans permission explicite dans server-nestjs.
  • Default grants implicites dans plugins.

Décisions à prendre

  1. Cible pour les nouveaux rôles admin.
  2. Cible pour everyonePerms par défaut.
  3. Liste des dérogations conservées + date de péremption.
  4. Owner/PR par sujet ou ticket groupé.

Metadata

Metadata

Assignees

Labels

techTechnical issuetechnical debtRésoud de la dette technique

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions