Files
stripstream/src/app/actions/password.ts
Julien Froidefond b815202529 refactor: convert password change to Server Action
- Add src/app/actions/password.ts with changePassword
- Update ChangePasswordForm to use Server Action
- Remove api/user/password route (entire file)
2026-02-28 10:59:00 +01:00

34 lines
1.1 KiB
TypeScript

"use server";
import { UserService } from "@/lib/services/user.service";
import { AuthServerService } from "@/lib/services/auth-server.service";
import { ERROR_CODES } from "@/constants/errorCodes";
import { AppError } from "@/utils/errors";
/**
* Change le mot de passe de l'utilisateur
*/
export async function changePassword(
currentPassword: string,
newPassword: string
): Promise<{ success: boolean; message: string }> {
try {
// Vérifier que le nouveau mot de passe est fort
if (!AuthServerService.isPasswordStrong(newPassword)) {
return {
success: false,
message: "Le nouveau mot de passe doit contenir au moins 8 caractères, une majuscule et un chiffre",
};
}
await UserService.changePassword(currentPassword, newPassword);
return { success: true, message: "Mot de passe modifié avec succès" };
} catch (error) {
if (error instanceof AppError) {
return { success: false, message: error.message };
}
return { success: false, message: "Erreur lors du changement de mot de passe" };
}
}