diff --git a/src/routes/user/user.service.ts b/src/routes/user/user.service.ts index 3684159..83eebf5 100644 --- a/src/routes/user/user.service.ts +++ b/src/routes/user/user.service.ts @@ -29,8 +29,20 @@ export class UserService { // Déterminer si le créateur est super admin const isSuperAdmin = currentUser?.role === RoleType.SUPER_ADMIN; - // Forcer rôle et statut si pas super admin - const role = isSuperAdmin ? dto.role : RoleType.PARENT; + let role: RoleType; + + if (isSuperAdmin) { + // Un super admin peut créer n'importe quel rôle + role = dto.role; + } else if (dto.role === RoleType.ASSISTANTE_MATERNELLE) { + // Autoriser l'auto-inscription des AM + role = RoleType.ASSISTANTE_MATERNELLE; + } else { + // Tous les autres cas → forcer en PARENT + role = RoleType.PARENT; + } + + // Statut par défaut : EN_ATTENTE (sauf si super admin qui peut forcer) const statut = isSuperAdmin ? dto.statut ?? StatutUtilisateurType.EN_ATTENTE : StatutUtilisateurType.EN_ATTENTE; @@ -42,17 +54,14 @@ export class UserService { ); } - // Vérification des champs obligatoires (déjà couverts par DTO, mais double sécurité) + // Vérification des champs obligatoires if (!dto.nom?.trim()) { throw new BadRequestException('Nom est obligatoire.'); - } - else if (!dto.prenom?.trim()) { + } else if (!dto.prenom?.trim()) { throw new BadRequestException('Prénom est obligatoire.'); - } - else if (!dto.adresse?.trim()) { + } else if (!dto.adresse?.trim()) { throw new BadRequestException('Adresse est obligatoire.'); - } - else if (!dto.telephone?.trim()) { + } else if (!dto.telephone?.trim()) { throw new BadRequestException('Téléphone est obligatoire.'); } @@ -93,6 +102,7 @@ export class UserService { } + async findAll(): Promise { return this.usersRepository.find(); }