Files
unionflow-mobile-apps/integration_test/scripts/setup_keycloak_test_users.sh
dahoud d094d6db9c Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
2026-03-15 16:30:08 +00:00

157 lines
5.1 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Script pour créer les utilisateurs de test dans Keycloak
# Usage: ./setup_keycloak_test_users.sh
set -e
KEYCLOAK_URL="http://localhost:8180"
REALM="unionflow"
ADMIN_USER="admin"
ADMIN_PASSWORD="admin"
echo "🔐 Configuration des utilisateurs de test Keycloak"
echo "=================================================="
echo ""
# 1. Obtenir le token admin
echo "1⃣ Obtention du token admin..."
TOKEN_RESPONSE=$(curl -s -X POST "$KEYCLOAK_URL/realms/master/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=$ADMIN_USER" \
-d "password=$ADMIN_PASSWORD" \
-d "grant_type=password" \
-d "client_id=admin-cli")
ADMIN_TOKEN=$(echo $TOKEN_RESPONSE | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
if [ -z "$ADMIN_TOKEN" ]; then
echo "❌ Échec obtention token admin"
echo "Réponse: $TOKEN_RESPONSE"
exit 1
fi
echo "✅ Token admin obtenu: ${ADMIN_TOKEN:0:30}..."
echo ""
# 2. Vérifier si le realm unionflow existe
echo "2⃣ Vérification du realm '$REALM'..."
REALM_CHECK=$(curl -s -o /dev/null -w "%{http_code}" -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM" \
-H "Authorization: Bearer $ADMIN_TOKEN")
if [ "$REALM_CHECK" != "200" ]; then
echo "❌ Realm '$REALM' n'existe pas (HTTP $REALM_CHECK)"
echo " Créez d'abord le realm via l'interface admin Keycloak"
exit 1
fi
echo "✅ Realm '$REALM' existe"
echo ""
# 3. Lister les utilisateurs existants
echo "3⃣ Liste des utilisateurs existants..."
EXISTING_USERS=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/users?max=100" \
-H "Authorization: Bearer $ADMIN_TOKEN")
echo "$EXISTING_USERS" | grep -q '"username"' && echo " Utilisateurs trouvés:" && echo "$EXISTING_USERS" | grep -o '"username":"[^"]*' | cut -d'"' -f4 || echo " Aucun utilisateur existant"
echo ""
# 4. Créer l'utilisateur ORG_ADMIN
echo "4⃣ Création utilisateur orgadmin@unionflow.test..."
ORG_ADMIN_PAYLOAD='{
"username": "orgadmin@unionflow.test",
"email": "orgadmin@unionflow.test",
"emailVerified": true,
"enabled": true,
"firstName": "Org",
"lastName": "Admin",
"credentials": [{
"type": "password",
"value": "OrgAdmin@123",
"temporary": false
}]
}'
ORG_ADMIN_CREATE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
"$KEYCLOAK_URL/admin/realms/$REALM/users" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "$ORG_ADMIN_PAYLOAD")
if [ "$ORG_ADMIN_CREATE" = "201" ]; then
echo "✅ Utilisateur orgadmin@unionflow.test créé (HTTP 201)"
elif [ "$ORG_ADMIN_CREATE" = "409" ]; then
echo "⚠️ Utilisateur orgadmin@unionflow.test existe déjà (HTTP 409)"
else
echo "❌ Échec création orgadmin@unionflow.test (HTTP $ORG_ADMIN_CREATE)"
fi
echo ""
# 5. Créer l'utilisateur SUPER_ADMIN
echo "5⃣ Création utilisateur admin@unionflow.test..."
SUPER_ADMIN_PAYLOAD='{
"username": "admin@unionflow.test",
"email": "admin@unionflow.test",
"emailVerified": true,
"enabled": true,
"firstName": "Super",
"lastName": "Admin",
"credentials": [{
"type": "password",
"value": "Admin@123",
"temporary": false
}]
}'
SUPER_ADMIN_CREATE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
"$KEYCLOAK_URL/admin/realms/$REALM/users" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "$SUPER_ADMIN_PAYLOAD")
if [ "$SUPER_ADMIN_CREATE" = "201" ]; then
echo "✅ Utilisateur admin@unionflow.test créé (HTTP 201)"
elif [ "$SUPER_ADMIN_CREATE" = "409" ]; then
echo "⚠️ Utilisateur admin@unionflow.test existe déjà (HTTP 409)"
else
echo "❌ Échec création admin@unionflow.test (HTTP $SUPER_ADMIN_CREATE)"
fi
echo ""
# 6. Récupérer les IDs des utilisateurs créés
echo "6⃣ Récupération des IDs utilisateurs..."
ORG_ADMIN_ID=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/users?username=orgadmin@unionflow.test" \
-H "Authorization: Bearer $ADMIN_TOKEN" | grep -o '"id":"[^"]*' | head -1 | cut -d'"' -f4)
SUPER_ADMIN_ID=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/users?username=admin@unionflow.test" \
-H "Authorization: Bearer $ADMIN_TOKEN" | grep -o '"id":"[^"]*' | head -1 | cut -d'"' -f4)
echo " orgadmin@unionflow.test ID: $ORG_ADMIN_ID"
echo " admin@unionflow.test ID: $SUPER_ADMIN_ID"
echo ""
# 7. Assigner les rôles (si les rôles existent)
echo "7⃣ Attribution des rôles..."
echo " Attribution manuelle requise via Keycloak Admin Console:"
echo " - Aller à: $KEYCLOAK_URL/admin/master/console/#/unionflow/users"
echo " - Sélectionner l'utilisateur orgadmin@unionflow.test"
echo " - Onglet 'Role mapping' > Assigner le rôle ORG_ADMIN"
echo " - Faire de même pour admin@unionflow.test avec SUPER_ADMIN"
echo ""
echo "=================================================="
echo "✅ Configuration terminée!"
echo ""
echo "Utilisateurs créés:"
echo " - orgadmin@unionflow.test / OrgAdmin@123 (ORG_ADMIN)"
echo " - admin@unionflow.test / Admin@123 (SUPER_ADMIN)"
echo ""
echo "Prochaine étape:"
echo " 1. Assigner les rôles manuellement (voir ci-dessus)"
echo " 2. Exécuter: flutter test integration_test/"
echo "=================================================="