Files
unionflow-client-quarkus-pr…/assign-roles.sh
2026-03-01 22:00:28 +00:00

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 ""