48 lines
1.3 KiB
JavaScript
Executable File
48 lines
1.3 KiB
JavaScript
Executable File
const PasswordService = require('../services/PasswordService');
|
|
|
|
/**
|
|
* Controller für Passwort-Verwaltung
|
|
* Verarbeitet HTTP-Requests und delegiert an PasswordService
|
|
*/
|
|
class PasswordController {
|
|
/**
|
|
* Ändert das Passwort
|
|
*/
|
|
async changePassword(req, res) {
|
|
try {
|
|
const userId = req.user?.id || 1;
|
|
const { oldPassword, newPassword, confirmPassword } = req.body;
|
|
|
|
if (!oldPassword || !newPassword || !confirmPassword) {
|
|
return res.status(400).json({
|
|
message: 'Alle Felder sind erforderlich'
|
|
});
|
|
}
|
|
|
|
if (newPassword !== confirmPassword) {
|
|
return res.status(400).json({
|
|
message: 'Die Passwörter stimmen nicht überein'
|
|
});
|
|
}
|
|
|
|
await PasswordService.changePassword(userId, oldPassword, newPassword);
|
|
|
|
res.json({ message: 'Passwort erfolgreich geändert' });
|
|
} catch (error) {
|
|
console.error('Fehler beim Ändern des Passworts:', error);
|
|
|
|
// Spezifische Fehlermeldungen
|
|
if (error.message.includes('alte Passwort')) {
|
|
return res.status(401).json({ message: error.message });
|
|
}
|
|
|
|
res.status(500).json({
|
|
message: error.message || 'Fehler beim Ändern des Passworts'
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = new PasswordController();
|
|
|