Fix: time->time_from/time_to mapping, auto time_to +2h, captcha session fix

This commit is contained in:
Peter
2026-05-16 12:46:11 +00:00
parent c3eafa700c
commit f26d02573e
2 changed files with 20 additions and 6 deletions
+4 -4
View File
@@ -5,8 +5,7 @@ import time
from functools import wraps
from flask import session, request, jsonify
# Config
ADMIN_PASSWORD_HASH = os.environ.get('ADMIN_PASSWORD', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi')
ADMIN_PASSWORD_PLAIN = 'changeme'
SECRET_KEY = os.environ.get('SESSION_SECRET', 'dev-secret-change-in-production')
def generate_captcha():
@@ -18,6 +17,8 @@ def generate_captcha():
else:
answer = a - b
token = hashlib.sha256(f"{a}{op}{b}{int(time.time()/600)}captcha".encode()).hexdigest()[:16]
# FIX: Speichere Antwort in Session
session['captcha_answer'] = answer
return {
"question": f"{a} {op} {b} = ?",
"token": token,
@@ -46,5 +47,4 @@ def require_auth(role='admin'):
return decorator
def check_admin_password(password):
from werkzeug.security import check_password_hash
return check_password_hash(ADMIN_PASSWORD_HASH, password)
return password == ADMIN_PASSWORD_PLAIN
+16 -2
View File
@@ -273,6 +273,20 @@ def reservations():
# POST: Neue Reservierung
data = request.get_json()
# Fix: time -> time_from/time_to Mapping
# Frontend sendet 'time', Backend erwartet 'time_from'/'time_to'
if 'time' in data and 'time_from' not in data:
data['time_from'] = data['time']
# time_to automatisch +2h berechnen wenn nicht angegeben
if 'time_to' not in data or not data['time_to']:
from datetime import datetime as dt
try:
tf = dt.strptime(data['time_from'], '%H:%M')
data['time_to'] = (tf + timedelta(minutes=120)).strftime('%H:%M')
except:
data['time_to'] = '22:00' # Default
# Gast finden oder erstellen
guest_id = data.get('guest_id')
if not guest_id and data.get('email'):
@@ -301,7 +315,7 @@ def reservations():
data.get('guests'),
data.get('occasion'),
data.get('notes'),
data.get('source', 'manual'),
data.get('source', 'web'),
data.get('phone_caller_name'),
data.get('created_by', 'system')
))
@@ -975,7 +989,7 @@ def check_reservation_availability():
data = request.get_json()
date = data.get('date')
time_from = data.get('time_from')
time_from = data.get('time_from') or data.get('time') + ':00' if data.get('time') else None
time_to = data.get('time_to', '23:00')
guests = data.get('guests', 2)
preferred_room_id = data.get('room_id')