#!/usr/bin/env bash
# Contrôle du back-office : redirection si non authentifié, puis accès après
# connexion avec le compte des fixtures.
B="http://localhost:8080"
J=$(mktemp)

echo "── Sans authentification (302 attendu vers la connexion) ──"
for u in /admin /admin/dashboard /admin/pages /admin/faq /admin/ateliers \
         /admin/messages /admin/demandes /admin/medias /admin/parametres \
         /admin/utilisateurs; do
    code=$(curl -s -o /dev/null -w '%{http_code}' "$B$u")
    printf '  %-24s %s\n' "$u" "$code"
done

echo
echo "── Page de connexion ──"
printf '  /admin/connexion         %s\n' "$(curl -s -o /dev/null -w '%{http_code}' "$B/admin/connexion")"

echo
echo "── Connexion ──"
token=$(curl -s -c "$J" "$B/admin/connexion" | grep -oE 'name="_csrf_token" value="[^"]+' | sed 's/.*value="//')
code=$(curl -s -b "$J" -c "$J" -o /dev/null -w '%{http_code}' \
    -d "email=admin@salam-gp.com" \
    -d "password=Admin1234!" \
    -d "_csrf_token=$token" \
    "$B/admin/connexion")
printf '  POST /admin/connexion    %s (302 = succes)\n' "$code"

echo
echo "── Authentifié ──"
for u in /admin/dashboard /admin/pages /admin/faq /admin/ateliers \
         /admin/messages /admin/demandes /admin/medias /admin/parametres \
         /admin/utilisateurs; do
    page=$(mktemp)
    code=$(curl -s -b "$J" -o "$page" -w '%{http_code}' "$B$u")
    titre=$(grep -oE '<title>[^<]{0,60}' "$page" | head -1 | sed 's|<title>||')
    printf '  %-24s %s  %s\n' "$u" "$code" "$titre"
    rm -f "$page"
done

echo
echo "── Édition d'une page ──"
code=$(curl -s -b "$J" -o /dev/null -w '%{http_code}' "$B/admin/pages/10/edit")
printf '  /admin/pages/10/edit      %s\n' "$code"

rm -f "$J"
