65 lines
2.3 KiB
Bash
65 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
KEYCLOAK_URL="http://localhost:8180"
|
|
ADMIN_USER="admin"
|
|
ADMIN_PASS="admin"
|
|
REALM_NAME="unionflow"
|
|
USER_ID="4ebcdfef-960e-4dd2-b89c-028129af906d"
|
|
|
|
echo "🔧 Attribution des rôles à l'utilisateur test..."
|
|
|
|
# Obtenir le token
|
|
TOKEN=$(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_PASS" \
|
|
-d "grant_type=password" \
|
|
-d "client_id=admin-cli" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
|
|
|
|
if [ -z "$TOKEN" ]; then
|
|
echo "❌ Impossible d'obtenir le token"
|
|
exit 1
|
|
fi
|
|
|
|
# Récupérer les rôles
|
|
ROLES_JSON=$(curl -s -X GET "$KEYCLOAK_URL/admin/realms/$REALM_NAME/roles" \
|
|
-H "Authorization: Bearer $TOKEN")
|
|
|
|
# Extraire les IDs des rôles MEMBRE et ADMIN_ENTITE
|
|
ROLE_MEMBRE_ID=$(echo "$ROLES_JSON" | grep -o '"id":"[^"]*","name":"MEMBRE"' | grep -o '"id":"[^"]*' | cut -d'"' -f4)
|
|
ROLE_ADMIN_ID=$(echo "$ROLES_JSON" | grep -o '"id":"[^"]*","name":"ADMIN_ENTITE"' | grep -o '"id":"[^"]*' | cut -d'"' -f4)
|
|
|
|
echo "MEMBRE ID: $ROLE_MEMBRE_ID"
|
|
echo "ADMIN_ENTITE ID: $ROLE_ADMIN_ID"
|
|
|
|
if [ -n "$ROLE_MEMBRE_ID" ]; then
|
|
curl -s -X POST "$KEYCLOAK_URL/admin/realms/$REALM_NAME/users/$USER_ID/role-mappings/realm" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "[{\"id\":\"$ROLE_MEMBRE_ID\",\"name\":\"MEMBRE\"}]" > /dev/null 2>&1
|
|
echo "✅ Rôle MEMBRE assigné"
|
|
fi
|
|
|
|
if [ -n "$ROLE_ADMIN_ID" ]; then
|
|
curl -s -X POST "$KEYCLOAK_URL/admin/realms/$REALM_NAME/users/$USER_ID/role-mappings/realm" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "[{\"id\":\"$ROLE_ADMIN_ID\",\"name\":\"ADMIN_ENTITE\"}]" > /dev/null 2>&1
|
|
echo "✅ Rôle ADMIN_ENTITE assigné"
|
|
fi
|
|
|
|
echo ""
|
|
echo "======================================================== "
|
|
echo "✅ Configuration terminée!"
|
|
echo "========================================================"
|
|
echo ""
|
|
echo "📋 Identifiants de connexion:"
|
|
echo " - Username: test@unionflow.dev"
|
|
echo " - Password: test123"
|
|
echo ""
|
|
echo "🚀 Prochaines étapes:"
|
|
echo " 1. Lancez l'application: ./start-local.sh"
|
|
echo " 2. Accédez à: http://localhost:8086"
|
|
echo " 3. Connectez-vous avec les identifiants ci-dessus"
|
|
echo ""
|