chore: Änderungen commited
This commit is contained in:
104
app.py
104
app.py
@@ -487,32 +487,94 @@ def settings():
|
||||
if request.method == 'POST':
|
||||
action = request.form.get('action')
|
||||
|
||||
# Bestimme, ob es eine AJAX-Anfrage ist
|
||||
is_ajax = request.headers.get('X-Requested-With') == 'XMLHttpRequest' or request.content_type and 'multipart/form-data' in request.content_type
|
||||
|
||||
if action == 'update_profile':
|
||||
current_user.bio = request.form.get('bio')
|
||||
|
||||
# Update avatar if provided
|
||||
avatar_url = request.form.get('avatar_url')
|
||||
if avatar_url:
|
||||
current_user.avatar = avatar_url
|
||||
try:
|
||||
current_user.bio = request.form.get('bio', '')
|
||||
current_user.location = request.form.get('location', '')
|
||||
current_user.website = request.form.get('website', '')
|
||||
|
||||
db.session.commit()
|
||||
flash('Profil erfolgreich aktualisiert!', 'success')
|
||||
# Update avatar if provided
|
||||
avatar_url = request.form.get('avatar_url')
|
||||
if avatar_url:
|
||||
current_user.avatar = avatar_url
|
||||
|
||||
db.session.commit()
|
||||
|
||||
if is_ajax:
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'message': 'Profil erfolgreich aktualisiert!'
|
||||
})
|
||||
else:
|
||||
flash('Profil erfolgreich aktualisiert!', 'success')
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
app.logger.error(f"Fehler beim Aktualisieren des Profils: {str(e)}")
|
||||
|
||||
if is_ajax:
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': 'Fehler beim Aktualisieren des Profils'
|
||||
}), 500
|
||||
else:
|
||||
flash('Fehler beim Aktualisieren des Profils', 'error')
|
||||
|
||||
elif action == 'update_password':
|
||||
current_password = request.form.get('current_password')
|
||||
new_password = request.form.get('new_password')
|
||||
confirm_password = request.form.get('confirm_password')
|
||||
|
||||
if not current_user.check_password(current_password):
|
||||
flash('Aktuelles Passwort ist nicht korrekt', 'error')
|
||||
elif new_password != confirm_password:
|
||||
flash('Neue Passwörter stimmen nicht überein', 'error')
|
||||
else:
|
||||
current_user.set_password(new_password)
|
||||
db.session.commit()
|
||||
flash('Passwort erfolgreich aktualisiert!', 'success')
|
||||
try:
|
||||
current_password = request.form.get('current_password')
|
||||
new_password = request.form.get('new_password')
|
||||
confirm_password = request.form.get('confirm_password')
|
||||
|
||||
if not current_user.check_password(current_password):
|
||||
if is_ajax:
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': 'Aktuelles Passwort ist nicht korrekt'
|
||||
}), 400
|
||||
else:
|
||||
flash('Aktuelles Passwort ist nicht korrekt', 'error')
|
||||
elif new_password != confirm_password:
|
||||
if is_ajax:
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': 'Neue Passwörter stimmen nicht überein'
|
||||
}), 400
|
||||
else:
|
||||
flash('Neue Passwörter stimmen nicht überein', 'error')
|
||||
else:
|
||||
current_user.set_password(new_password)
|
||||
db.session.commit()
|
||||
|
||||
if is_ajax:
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'message': 'Passwort erfolgreich aktualisiert!'
|
||||
})
|
||||
else:
|
||||
flash('Passwort erfolgreich aktualisiert!', 'success')
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
app.logger.error(f"Fehler beim Aktualisieren des Passworts: {str(e)}")
|
||||
|
||||
if is_ajax:
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': 'Fehler beim Aktualisieren des Passworts'
|
||||
}), 500
|
||||
else:
|
||||
flash('Fehler beim Aktualisieren des Passworts', 'error')
|
||||
|
||||
return redirect(url_for('settings'))
|
||||
if not is_ajax:
|
||||
return redirect(url_for('settings'))
|
||||
else:
|
||||
# Standardantwort für AJAX, falls keine spezifische Antwort zurückgegeben wurde
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'message': 'Einstellungen aktualisiert'
|
||||
})
|
||||
|
||||
return render_template('settings.html')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user