From b9f4076a7be9776d944784756e42d7c306af4f83 Mon Sep 17 00:00:00 2001 From: alma Date: Wed, 14 Jan 2026 20:35:02 +0100 Subject: [PATCH] Agenda refactor --- test-infomaniak-caldav-simple.sh | 70 +++++++++++++++ test-infomaniak-caldav.sh | 147 +++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+) create mode 100755 test-infomaniak-caldav-simple.sh create mode 100644 test-infomaniak-caldav.sh diff --git a/test-infomaniak-caldav-simple.sh b/test-infomaniak-caldav-simple.sh new file mode 100755 index 0000000..7bff5ce --- /dev/null +++ b/test-infomaniak-caldav-simple.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# Script de test simple pour la connexion CalDAV Infomaniak +# Usage: ./test-infomaniak-caldav-simple.sh + +EMAIL="${1:-a.tmiri@icmaae.foundation}" +PASSWORD="${2}" + +if [ -z "$PASSWORD" ]; then + echo "❌ Usage: $0 " + echo "" + echo "Example:" + echo " $0 a.tmiri@icmaae.foundation 'your-password'" + exit 1 +fi + +BASE_URL="https://sync.infomaniak.com/caldav" + +echo "🔍 Test CalDAV Infomaniak" +echo "Email: $EMAIL" +echo "URL: $BASE_URL" +echo "" + +# Test PROPFIND (mĂ©thode principale utilisĂ©e par le code) +echo "📡 Test PROPFIND..." +HTTP_CODE=$(curl -s -o /tmp/caldav-response.xml -w "%{http_code}" \ + -X PROPFIND \ + -u "${EMAIL}:${PASSWORD}" \ + -H "Depth: 1" \ + -H "Content-Type: application/xml" \ + --data-binary ' + + + + + +' \ + "${BASE_URL}/") + +echo "HTTP Status: $HTTP_CODE" +echo "" + +if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "207" ]; then + echo "✅ SUCCESS - Connexion rĂ©ussie!" + echo "" + echo "Calendriers trouvĂ©s:" + grep -o "[^<]*" /tmp/caldav-response.xml | sed 's/<[^>]*>//g' | nl + echo "" + echo "RĂ©ponse complĂšte sauvegardĂ©e dans /tmp/caldav-response.xml" +elif [ "$HTTP_CODE" = "401" ]; then + echo "❌ ERREUR 401 - Non autorisĂ©" + echo "" + echo "Causes possibles:" + echo " 1. Mot de passe incorrect" + echo " 2. 2FA activĂ© - utilisez un mot de passe d'application" + echo " 3. Compte suspendu" + echo "" + echo "Pour gĂ©nĂ©rer un mot de passe d'application Infomaniak:" + echo " 1. Connectez-vous Ă  https://config.infomaniak.com" + echo " 2. Allez dans 'Mon profil' > 'Mots de passe d'application'" + echo " 3. GĂ©nĂ©rez un nouveau mot de passe pour 'CalDAV'" + echo " 4. Utilisez ce mot de passe dans votre compte email" +else + echo "❌ ERREUR HTTP $HTTP_CODE" + echo "" + echo "RĂ©ponse:" + cat /tmp/caldav-response.xml | head -20 +fi + +rm -f /tmp/caldav-response.xml diff --git a/test-infomaniak-caldav.sh b/test-infomaniak-caldav.sh new file mode 100644 index 0000000..1295958 --- /dev/null +++ b/test-infomaniak-caldav.sh @@ -0,0 +1,147 @@ +#!/bin/bash + +# Script de test pour la connexion CalDAV Infomaniak +# Usage: ./test-infomaniak-caldav.sh + +EMAIL="${1:-a.tmiri@icmaae.foundation}" +PASSWORD="${2}" + +if [ -z "$PASSWORD" ]; then + echo "Usage: $0 " + echo "Example: $0 a.tmiri@icmaae.foundation 'your-password'" + exit 1 +fi + +BASE_URL="https://sync.infomaniak.com/caldav" + +echo "==========================================" +echo "Test de connexion CalDAV Infomaniak" +echo "==========================================" +echo "Email: $EMAIL" +echo "Base URL: $BASE_URL" +echo "Password length: ${#PASSWORD}" +echo "" + +# Test 1: PROPFIND sur la racine +echo "Test 1: PROPFIND sur la racine (/)" +echo "-----------------------------------" +RESPONSE=$(curl -s -w "\nHTTP_CODE:%{http_code}" \ + -X PROPFIND \ + -u "${EMAIL}:${PASSWORD}" \ + -H "Depth: 1" \ + -H "Content-Type: application/xml" \ + --data-binary ' + + + + + +' \ + "${BASE_URL}/") + +HTTP_CODE=$(echo "$RESPONSE" | grep -o "HTTP_CODE:[0-9]*" | cut -d: -f2) +BODY=$(echo "$RESPONSE" | sed '/HTTP_CODE:/d') + +echo "HTTP Status: $HTTP_CODE" +if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "207" ]; then + echo "✅ SUCCESS - Connexion rĂ©ussie!" + echo "" + echo "RĂ©ponse:" + echo "$BODY" | head -50 +else + echo "❌ FAILED - Erreur HTTP $HTTP_CODE" + echo "" + echo "RĂ©ponse complĂšte:" + echo "$BODY" +fi + +echo "" +echo "" + +# Test 2: OPTIONS pour vĂ©rifier les capacitĂ©s +echo "Test 2: OPTIONS pour vĂ©rifier les capacitĂ©s" +echo "--------------------------------------------" +RESPONSE2=$(curl -s -w "\nHTTP_CODE:%{http_code}" \ + -X OPTIONS \ + -u "${EMAIL}:${PASSWORD}" \ + "${BASE_URL}/") + +HTTP_CODE2=$(echo "$RESPONSE2" | grep -o "HTTP_CODE:[0-9]*" | cut -d: -f2) +BODY2=$(echo "$RESPONSE2" | sed '/HTTP_CODE:/d') + +echo "HTTP Status: $HTTP_CODE2" +if [ "$HTTP_CODE2" = "200" ]; then + echo "✅ SUCCESS" + echo "" + echo "Headers (capacitĂ©s):" + curl -s -I -X OPTIONS \ + -u "${EMAIL}:${PASSWORD}" \ + "${BASE_URL}/" | grep -i "dav\|allow\|calendar" +else + echo "❌ FAILED - Erreur HTTP $HTTP_CODE2" +fi + +echo "" +echo "" + +# Test 3: GET sur la racine +echo "Test 3: GET sur la racine (/)" +echo "------------------------------" +RESPONSE3=$(curl -s -w "\nHTTP_CODE:%{http_code}" \ + -u "${EMAIL}:${PASSWORD}" \ + "${BASE_URL}/") + +HTTP_CODE3=$(echo "$RESPONSE3" | grep -o "HTTP_CODE:[0-9]*" | cut -d: -f2) +BODY3=$(echo "$RESPONSE3" | sed '/HTTP_CODE:/d') + +echo "HTTP Status: $HTTP_CODE3" +if [ "$HTTP_CODE3" = "200" ] || [ "$HTTP_CODE3" = "207" ]; then + echo "✅ SUCCESS" + echo "" + echo "RĂ©ponse:" + echo "$BODY3" | head -30 +else + echo "❌ FAILED - Erreur HTTP $HTTP_CODE3" +fi + +echo "" +echo "" + +# Test 4: VĂ©rification avec verbose pour voir les headers d'authentification +echo "Test 4: RequĂȘte verbose (pour debug)" +echo "-------------------------------------" +echo "Commande curl complĂšte:" +echo "curl -v -X PROPFIND -u \"${EMAIL}:***\" -H \"Depth: 1\" \"${BASE_URL}/\"" +echo "" +echo "ExĂ©cution (sans afficher le password):" +curl -v -X PROPFIND \ + -u "${EMAIL}:${PASSWORD}" \ + -H "Depth: 1" \ + -H "Content-Type: application/xml" \ + --data-binary ' + + + + +' \ + "${BASE_URL}/" 2>&1 | grep -E "(< HTTP|Authorization|WWW-Authenticate|401|200|207)" | head -20 + +echo "" +echo "==========================================" +echo "RĂ©sumĂ©:" +echo "==========================================" +if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "207" ]; then + echo "✅ La connexion CalDAV fonctionne correctement" + echo " Le problĂšme pourrait ĂȘtre dans le code Node.js" +elif [ "$HTTP_CODE" = "401" ]; then + echo "❌ Erreur 401 Unauthorized" + echo " Causes possibles:" + echo " 1. Mot de passe incorrect" + echo " 2. 2FA activĂ© - nĂ©cessite un mot de passe d'application" + echo " 3. Compte suspendu ou dĂ©sactivĂ©" + echo " 4. Email incorrect" +else + echo "⚠ Erreur HTTP $HTTP_CODE" + echo " VĂ©rifiez la connexion rĂ©seau et l'URL" +fi +echo ""