Initial commit: unionflow-mobile-apps

Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 16:30:08 +00:00
commit d094d6db9c
1790 changed files with 507435 additions and 0 deletions

View File

@@ -0,0 +1,166 @@
#!/bin/bash
# Script pour créer et assigner les rôles dans Keycloak
# Usage: ./assign_roles.sh
set -e
KEYCLOAK_URL="http://localhost:8180"
REALM="unionflow"
ADMIN_USER="admin"
ADMIN_PASSWORD="admin"
echo "🎭 Attribution des rôles utilisateurs 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"
exit 1
fi
echo "✅ Token obtenu"
echo ""
# 2. Créer les rôles realm si nécessaire
echo "2⃣ Création des rôles realm..."
# Créer ORG_ADMIN
ORG_ADMIN_ROLE='{
"name": "ORG_ADMIN",
"description": "Administrator d'\''une organisation"
}'
ORG_ADMIN_CREATE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
"$KEYCLOAK_URL/admin/realms/$REALM/roles" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "$ORG_ADMIN_ROLE")
if [ "$ORG_ADMIN_CREATE" = "201" ]; then
echo "✅ Rôle ORG_ADMIN créé"
elif [ "$ORG_ADMIN_CREATE" = "409" ]; then
echo "⚠️ Rôle ORG_ADMIN existe déjà"
else
echo "❌ Échec création ORG_ADMIN (HTTP $ORG_ADMIN_CREATE)"
fi
# Créer SUPER_ADMIN
SUPER_ADMIN_ROLE='{
"name": "SUPER_ADMIN",
"description": "Super administrateur de la plateforme"
}'
SUPER_ADMIN_CREATE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
"$KEYCLOAK_URL/admin/realms/$REALM/roles" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "$SUPER_ADMIN_ROLE")
if [ "$SUPER_ADMIN_CREATE" = "201" ]; then
echo "✅ Rôle SUPER_ADMIN créé"
elif [ "$SUPER_ADMIN_CREATE" = "409" ]; then
echo "⚠️ Rôle SUPER_ADMIN existe déjà"
else
echo "❌ Échec création SUPER_ADMIN (HTTP $SUPER_ADMIN_CREATE)"
fi
echo ""
# 3. Récupérer les IDs des utilisateurs
echo "3⃣ Récupération des IDs utilisateurs..."
ORG_ADMIN_USER_ID=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/users?username=orgadmin@unionflow.test&exact=true" \
-H "Authorization: Bearer $ADMIN_TOKEN" | grep -o '"id":"[^"]*' | head -1 | cut -d'"' -f4)
SUPER_ADMIN_USER_ID=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/users?username=admin@unionflow.test&exact=true" \
-H "Authorization: Bearer $ADMIN_TOKEN" | grep -o '"id":"[^"]*' | head -1 | cut -d'"' -f4)
if [ -z "$ORG_ADMIN_USER_ID" ]; then
echo "❌ Utilisateur orgadmin@unionflow.test non trouvé"
exit 1
fi
if [ -z "$SUPER_ADMIN_USER_ID" ]; then
echo "❌ Utilisateur admin@unionflow.test non trouvé"
exit 1
fi
echo "✅ Utilisateurs trouvés:"
echo " orgadmin@unionflow.test: $ORG_ADMIN_USER_ID"
echo " admin@unionflow.test: $SUPER_ADMIN_USER_ID"
echo ""
# 4. Récupérer les définitions des rôles
echo "4⃣ Récupération des rôles..."
ORG_ADMIN_ROLE_DEF=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/roles/ORG_ADMIN" \
-H "Authorization: Bearer $ADMIN_TOKEN")
SUPER_ADMIN_ROLE_DEF=$(curl -s -X GET \
"$KEYCLOAK_URL/admin/realms/$REALM/roles/SUPER_ADMIN" \
-H "Authorization: Bearer $ADMIN_TOKEN")
echo "✅ Rôles récupérés"
echo ""
# 5. Assigner ORG_ADMIN à orgadmin@unionflow.test
echo "5⃣ Attribution rôle ORG_ADMIN..."
ASSIGN_ORG_ADMIN=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
"$KEYCLOAK_URL/admin/realms/$REALM/users/$ORG_ADMIN_USER_ID/role-mappings/realm" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "[$ORG_ADMIN_ROLE_DEF]")
if [ "$ASSIGN_ORG_ADMIN" = "204" ]; then
echo "✅ Rôle ORG_ADMIN assigné à orgadmin@unionflow.test"
else
echo "⚠️ Attribution ORG_ADMIN (HTTP $ASSIGN_ORG_ADMIN) - possiblement déjà assigné"
fi
echo ""
# 6. Assigner SUPER_ADMIN à admin@unionflow.test
echo "6⃣ Attribution rôle SUPER_ADMIN..."
ASSIGN_SUPER_ADMIN=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
"$KEYCLOAK_URL/admin/realms/$REALM/users/$SUPER_ADMIN_USER_ID/role-mappings/realm" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "[$SUPER_ADMIN_ROLE_DEF]")
if [ "$ASSIGN_SUPER_ADMIN" = "204" ]; then
echo "✅ Rôle SUPER_ADMIN assigné à admin@unionflow.test"
else
echo "⚠️ Attribution SUPER_ADMIN (HTTP $ASSIGN_SUPER_ADMIN) - possiblement déjà assigné"
fi
echo ""
echo "=============================================="
echo "✅ Configuration des rôles terminée!"
echo ""
echo "Vérification:"
echo " curl -X POST http://localhost:8180/realms/unionflow/protocol/openid-connect/token \\"
echo " -d 'username=orgadmin@unionflow.test' \\"
echo " -d 'password=OrgAdmin@123' \\"
echo " -d 'grant_type=password' \\"
echo " -d 'client_id=unionflow-mobile'"
echo ""
echo "Prochaine étape:"
echo " flutter test integration_test/"
echo "=============================================="

View File

@@ -0,0 +1,156 @@
#!/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 "=================================================="