feat: remove user even if in a team
This commit is contained in:
@@ -25,9 +25,6 @@ export async function DELETE(
|
|||||||
if (error.message === "Utilisateur non trouvé") {
|
if (error.message === "Utilisateur non trouvé") {
|
||||||
return NextResponse.json({ error: error.message }, { status: 404 });
|
return NextResponse.json({ error: error.message }, { status: 404 });
|
||||||
}
|
}
|
||||||
if (error.message.includes("appartient à une équipe")) {
|
|
||||||
return NextResponse.json({ error: error.message }, { status: 409 });
|
|
||||||
}
|
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export function UsersList({
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
onDelete={() => onDeleteUser(user)}
|
onDelete={() => onDeleteUser(user)}
|
||||||
canDelete={!user.teamName}
|
canDelete={true}
|
||||||
showSeparator={userIndex > 0}
|
showSeparator={userIndex > 0}
|
||||||
additionalInfo={
|
additionalInfo={
|
||||||
<p className="text-slate-500 text-xs">
|
<p className="text-slate-500 text-xs">
|
||||||
|
|||||||
@@ -57,21 +57,11 @@ export function useUsersManagement(teams: Team[], initialUsers?: any[]) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleDeleteUser = async (user: User) => {
|
const handleDeleteUser = async (user: User) => {
|
||||||
if (user.teamName) {
|
const confirmMessage = user.teamName
|
||||||
toast({
|
? `Êtes-vous sûr de vouloir supprimer définitivement ${user.firstName} ${user.lastName} ?\n\n⚠️ Cet utilisateur sera automatiquement retiré de l'équipe "${user.teamName}"\n\nCette action supprimera aussi toutes ses évaluations par skills et est irréversible.`
|
||||||
title: "Action impossible",
|
: `Êtes-vous sûr de vouloir supprimer définitivement ${user.firstName} ${user.lastName} ?\n\nCette action supprimera aussi toutes ses évaluations par skills et est irréversible.`;
|
||||||
description:
|
|
||||||
"Retirez d'abord l'utilisateur de son équipe avant de le supprimer",
|
|
||||||
variant: "destructive",
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
if (!confirm(confirmMessage)) {
|
||||||
!confirm(
|
|
||||||
`Êtes-vous sûr de vouloir supprimer définitivement ${user.firstName} ${user.lastName} ?\n\nCette action supprimera aussi toutes ses évaluations par skills et est irréversible.`
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -204,10 +204,12 @@ export class UserService {
|
|||||||
|
|
||||||
const user = userCheck.rows[0];
|
const user = userCheck.rows[0];
|
||||||
|
|
||||||
// Vérifier que l'utilisateur n'est pas dans une équipe
|
// Si l'utilisateur est dans une équipe, le retirer automatiquement
|
||||||
if (user.team_id) {
|
if (user.team_id) {
|
||||||
throw new Error(
|
// Retirer l'utilisateur de son équipe
|
||||||
"Impossible de supprimer un utilisateur qui appartient à une équipe. Retirez-le d'abord de son équipe."
|
await client.query(
|
||||||
|
"UPDATE users SET team_id = NULL WHERE uuid_id = $1",
|
||||||
|
[userId]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user