test de push suspenduser service

This commit is contained in:
sdraris 2025-09-17 15:08:14 +02:00
parent b8af145325
commit 39878644e8

View File

@ -43,7 +43,9 @@ export class UserService {
prenom: dto.prenom,
nom: dto.nom,
role: dto.role,
statut: dto.statut,
statut: currentUser?.role === RoleType.SUPER_ADMIN
? dto.statut
: StatutUtilisateurType.EN_ATTENTE,
genre: dto.genre,
telephone: dto.telephone,
ville: dto.ville,
@ -128,6 +130,25 @@ export class UserService {
return savedUser;
}
async suspendUser(user_id: string, currentUser: Users, comment?: string): Promise<Users> {
if (![RoleType.SUPER_ADMIN, RoleType.ADMINISTRATEUR, RoleType.GESTIONNAIRE].includes(currentUser.role)) {
throw new ForbiddenException('Accès réservé aux super admins, administrateurs et gestionnaires');
}
const user = await this.usersRepository.findOne({ where: { id: user_id } });
if (!user) throw new NotFoundException('Utilisateur introuvable');
user.statut = StatutUtilisateurType.SUSPENDU;
const savedUser = await this.usersRepository.save(user);
const suspend = this.validationRepository.create({
user: savedUser,
type: 'suspension_compte',
status: StatutValidationType.VALIDE,
validated_by: currentUser,
comment
})
await this.validationRepository.save(suspend);
return savedUser;
}
async remove(id: string): Promise<void> {
const result = await this.usersRepository.delete(id);
if (result.affected === 0) {