From 5905dd57842f4a6af1989bbaed4974982db048ee Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sat, 17 Jan 2026 18:34:49 +0100 Subject: [PATCH] Enhance deployment script and navigation component for improved data handling and user access This commit updates the deploy-production.sh script to remove tracked public/data CSV files from the Git index and ensures that backup files are restored correctly, with size verification for integrity. Additionally, it modifies the Navigation.vue component to allow access to the gallery for users with newsletter permissions, enhancing user experience and access control. --- components/Navigation.vue | 4 ++-- deploy-production.sh | 44 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/components/Navigation.vue b/components/Navigation.vue index 094a5ed..fd4a258 100644 --- a/components/Navigation.vue +++ b/components/Navigation.vue @@ -76,7 +76,7 @@ /dev/null 2>&1 +# WICHTIG: Entferne public/data Dateien aus Git-Index, falls sie getrackt sind +# (Sie sollten in .gitignore sein, aber falls sie historisch getrackt wurden) +if git ls-files --error-unmatch public/data/*.csv >/dev/null 2>&1; then + echo " WARNING: public/data/*.csv Dateien sind im Git getrackt!" + echo " Entferne sie aus dem Git-Index (Dateien bleiben erhalten)..." + git rm --cached public/data/*.csv 2>/dev/null || true +fi + # 3. Install dependencies echo "" echo "3. Installing dependencies..." @@ -292,10 +300,40 @@ echo " Restored server/data from backup ($BACKUP_DIR/server-data)." # Stelle alle CSVs wieder her if ls "$BACKUP_DIR/public-data"/*.csv >/dev/null 2>&1; then mkdir -p public/data - cp -a "$BACKUP_DIR/public-data"/*.csv public/data/ - echo " Restored public/data/*.csv from backup ($BACKUP_DIR/public-data)." + + # WICHTIG: Überschreibe auch Dateien, die aus dem Git-Repository kommen + # Verwende cp mit -f (force) um sicherzustellen, dass Backup-Dateien Vorrang haben + for csv_file in "$BACKUP_DIR/public-data"/*.csv; do + filename=$(basename "$csv_file") + # Überschreibe explizit, auch wenn Datei bereits existiert + cp -f "$csv_file" "public/data/$filename" + # Stelle sicher, dass die Datei wirklich überschrieben wurde + if [ -f "public/data/$filename" ]; then + # Prüfe, ob die Datei wirklich vom Backup kommt (Größenvergleich) + backup_size=$(stat -f%z "$csv_file" 2>/dev/null || stat -c%s "$csv_file" 2>/dev/null || echo "0") + restored_size=$(stat -f%z "public/data/$filename" 2>/dev/null || stat -c%s "public/data/$filename" 2>/dev/null || echo "0") + if [ "$backup_size" = "$restored_size" ] && [ "$backup_size" != "0" ]; then + echo " ✓ Restored public/data/$filename from backup ($backup_size bytes)" + else + echo " ⚠ WARNING: public/data/$filename Größe stimmt nicht überein (Backup: $backup_size, Restored: $restored_size)" + fi + else + echo " ❌ ERROR: Konnte public/data/$filename nicht wiederherstellen!" + fi + done + + echo " ✓ All public/data/*.csv files restored from backup ($BACKUP_DIR/public-data)." + + # Zusätzliche Sicherheit: Entferne public/data Dateien aus Git-Index, falls sie getrackt sind + # (nach dem Restore, damit sie nicht beim nächsten git reset überschrieben werden) + if git ls-files --error-unmatch public/data/*.csv >/dev/null 2>&1; then + echo " WARNING: public/data/*.csv Dateien sind noch im Git getrackt!" + echo " Entferne sie aus dem Git-Index (Dateien bleiben erhalten)..." + git rm --cached public/data/*.csv 2>/dev/null || true + echo " ✓ public/data/*.csv aus Git-Index entfernt" + fi else - echo "No public CSVs to restore" + echo " No public CSVs to restore" fi # Sanity Check: users.json muss existieren und darf nicht leer sein