129 lines
4.0 KiB
Bash
129 lines
4.0 KiB
Bash
#!/bin/bash
|
|
# ONE-COMMAND FIX FOR 403 DELETE ISSUE
|
|
|
|
echo "======================================================================="
|
|
echo "FIXING WORSHIP LIST DELETE - 403 FORBIDDEN"
|
|
echo "======================================================================="
|
|
echo ""
|
|
|
|
# Step 1: Deploy Nginx config with CORS headers
|
|
echo "1. Deploying corrected Nginx configuration..."
|
|
sudo cp /media/pts/Website/Church_HOP_MusicData/new-site/nginx-ssl.conf /etc/nginx/sites-available/church-music-ssl
|
|
sudo ln -sf /etc/nginx/sites-available/church-music-ssl /etc/nginx/sites-enabled/church-music-ssl
|
|
sudo rm -f /etc/nginx/sites-enabled/default 2>/dev/null
|
|
|
|
echo "2. Testing Nginx configuration..."
|
|
if ! sudo nginx -t; then
|
|
echo "❌ Nginx config error! Check syntax."
|
|
exit 1
|
|
fi
|
|
echo "✅ Nginx config OK"
|
|
|
|
# Step 2: Reload Nginx
|
|
echo ""
|
|
echo "3. Reloading Nginx..."
|
|
sudo systemctl reload nginx
|
|
echo "✅ Nginx reloaded"
|
|
|
|
# Step 3: Restart Backend
|
|
echo ""
|
|
echo "4. Restarting backend service..."
|
|
sudo systemctl stop church-music-backend
|
|
sleep 2
|
|
sudo systemctl start church-music-backend
|
|
sleep 3
|
|
|
|
if sudo systemctl is-active --quiet church-music-backend; then
|
|
echo "✅ Backend started"
|
|
else
|
|
echo "❌ Backend failed to start!"
|
|
sudo systemctl status church-music-backend --no-pager -l | tail -20
|
|
exit 1
|
|
fi
|
|
|
|
# Step 4: Verify services
|
|
echo ""
|
|
echo "5. Verifying services..."
|
|
echo ""
|
|
|
|
# Check backend health
|
|
echo "Testing backend health..."
|
|
HEALTH=$(curl -s -m 5 http://localhost:8080/health 2>&1)
|
|
if echo "$HEALTH" | grep -q "ok"; then
|
|
echo "✅ Backend is responding"
|
|
else
|
|
echo "❌ Backend not responding: $HEALTH"
|
|
fi
|
|
|
|
# Step 5: Test DELETE endpoint
|
|
echo ""
|
|
echo "6. Testing DELETE endpoint..."
|
|
echo ""
|
|
|
|
# Get token
|
|
TOKEN=$(curl -s -m 10 -X POST https://houseofprayer.ddns.net/api/auth/login \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username":"hop","password":"hopWorship2024"}' 2>&1 | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [ -z "$TOKEN" ]; then
|
|
echo "⚠️ Could not get auth token - login may have failed"
|
|
echo "But services are restarted and should work now."
|
|
else
|
|
echo "Got auth token: ${TOKEN:0:30}..."
|
|
|
|
# Test DELETE
|
|
RESPONSE=$(curl -s -w "\nHTTP_CODE:%{http_code}" -m 10 -X DELETE \
|
|
"https://houseofprayer.ddns.net/api/lists/24474ea3-6f34-4704-ac48-a80e1225d79e/songs/9831e027-aeb1-48a0-8763-fd3120f29692" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" 2>&1)
|
|
|
|
HTTP_CODE=$(echo "$RESPONSE" | grep "HTTP_CODE:" | cut -d: -f2)
|
|
|
|
echo "DELETE Response Status: $HTTP_CODE"
|
|
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
echo ""
|
|
echo "✅✅✅ SUCCESS! DELETE IS WORKING! ✅✅✅"
|
|
echo ""
|
|
echo "You can now:"
|
|
echo " - Delete songs from worship lists"
|
|
echo " - Add songs to worship lists"
|
|
echo " - Edit existing worship lists"
|
|
echo ""
|
|
elif [ "$HTTP_CODE" = "404" ]; then
|
|
echo ""
|
|
echo "✅ Endpoint works! (404 means song doesn't exist - already deleted)"
|
|
echo "Try with a song that exists in a worship list"
|
|
elif [ "$HTTP_CODE" = "403" ]; then
|
|
echo ""
|
|
echo "❌ Still getting 403"
|
|
echo "Check Nginx error log:"
|
|
sudo tail -10 /var/log/nginx/error.log
|
|
else
|
|
echo ""
|
|
echo "Got status: $HTTP_CODE"
|
|
echo "$(echo "$RESPONSE" | grep -v "HTTP_CODE:")"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "======================================================================="
|
|
echo "SETUP COMPLETE"
|
|
echo "======================================================================="
|
|
echo ""
|
|
echo "Services restarted:"
|
|
echo " ✅ Nginx reloaded with CORS headers"
|
|
echo " ✅ Backend restarted with authentication"
|
|
echo ""
|
|
echo "Try the worship list now:"
|
|
echo " 1. Go to https://houseofprayer.ddns.net"
|
|
echo " 2. Log in"
|
|
echo " 3. Open a worship list"
|
|
echo " 4. Try to edit/delete songs"
|
|
echo ""
|
|
echo "If you still have issues, check:"
|
|
echo " - Browser console for errors"
|
|
echo " - Clear browser cache (Ctrl+Shift+Delete)"
|
|
echo " - Try incognito/private window"
|
|
echo ""
|