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é") {
|
||||
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;
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
@@ -58,7 +58,7 @@ export function UsersList({
|
||||
},
|
||||
]}
|
||||
onDelete={() => onDeleteUser(user)}
|
||||
canDelete={!user.teamName}
|
||||
canDelete={true}
|
||||
showSeparator={userIndex > 0}
|
||||
additionalInfo={
|
||||
<p className="text-slate-500 text-xs">
|
||||
|
||||
@@ -57,21 +57,11 @@ export function useUsersManagement(teams: Team[], initialUsers?: any[]) {
|
||||
};
|
||||
|
||||
const handleDeleteUser = async (user: User) => {
|
||||
if (user.teamName) {
|
||||
toast({
|
||||
title: "Action impossible",
|
||||
description:
|
||||
"Retirez d'abord l'utilisateur de son équipe avant de le supprimer",
|
||||
variant: "destructive",
|
||||
});
|
||||
return;
|
||||
}
|
||||
const confirmMessage = user.teamName
|
||||
? `Ê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.`
|
||||
: `Ê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.`;
|
||||
|
||||
if (
|
||||
!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.`
|
||||
)
|
||||
) {
|
||||
if (!confirm(confirmMessage)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -204,10 +204,12 @@ export class UserService {
|
||||
|
||||
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) {
|
||||
throw new Error(
|
||||
"Impossible de supprimer un utilisateur qui appartient à une équipe. Retirez-le d'abord de son équipe."
|
||||
// Retirer l'utilisateur de son équipe
|
||||
await client.query(
|
||||
"UPDATE users SET team_id = NULL WHERE uuid_id = $1",
|
||||
[userId]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user