- Ajout système complet de gestion des secteurs avec contours géographiques - Import des contours départementaux depuis GeoJSON - API REST pour la gestion des secteurs (/api/sectors) - Service de géolocalisation pour déterminer les secteurs - Migration base de données avec tables x_departements_contours et sectors_adresses - Interface Flutter pour visualisation et gestion des secteurs - Ajout thème sombre dans l'application - Corrections diverses et optimisations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
136 lines
4.4 KiB
Bash
136 lines
4.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Script pour configurer l'accès à la base de données des adresses
|
|
# avec segmentation par environnement basée sur les plages d'IPs
|
|
|
|
echo "Configuration de l'accès à la base de données des adresses"
|
|
echo "=========================================================="
|
|
echo ""
|
|
echo "Architecture des IPs par environnement :"
|
|
echo "- DÉVELOPPEMENT : 13.23.33.40-49 (13.23.33.4%)"
|
|
echo "- RECETTE : 13.23.33.30-39 (13.23.33.3%)"
|
|
echo "- PRODUCTION : 13.23.33.20-29 (13.23.33.2%)"
|
|
echo ""
|
|
|
|
# Fonction pour créer l'utilisateur sur un container
|
|
create_user_on_container() {
|
|
local container=$1
|
|
local ip_pattern=$2
|
|
local env_name=$3
|
|
|
|
echo ""
|
|
echo "Configuration pour $env_name ($container)..."
|
|
echo "Pattern IP autorisé : $ip_pattern"
|
|
|
|
# Se connecter au container MariaDB et créer l'utilisateur
|
|
incus exec $container -- mysql -u root -p -e "
|
|
-- Créer l'utilisateur pour l'accès depuis la plage IP de l'environnement
|
|
CREATE USER IF NOT EXISTS 'adresses_user'@'$ip_pattern' IDENTIFIED BY 'd66,AdrGeo.User';
|
|
GRANT SELECT ON adresses.* TO 'adresses_user'@'$ip_pattern';
|
|
|
|
-- Créer aussi un utilisateur localhost pour les tests directs
|
|
CREATE USER IF NOT EXISTS 'adresses_user'@'localhost' IDENTIFIED BY 'd66,AdrGeo.User';
|
|
GRANT SELECT ON adresses.* TO 'adresses_user'@'localhost';
|
|
|
|
FLUSH PRIVILEGES;
|
|
|
|
-- Vérifier
|
|
SELECT user, host FROM mysql.user WHERE user = 'adresses_user' ORDER BY host;
|
|
"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ Utilisateur créé sur $container"
|
|
else
|
|
echo "✗ Erreur lors de la création sur $container"
|
|
fi
|
|
}
|
|
|
|
# Fonction pour tester la connexion
|
|
test_connection() {
|
|
local api_container=$1
|
|
local maria_ip=$2
|
|
local env_name=$3
|
|
|
|
echo ""
|
|
echo "Test de connexion $env_name : $api_container -> $maria_ip..."
|
|
|
|
incus exec $api_container -- mysql -h $maria_ip -u adresses_user -p'd66,AdrGeo.User' -e "
|
|
SELECT CONCAT('Connexion réussie depuis ', @@hostname, ' vers ', '$maria_ip') as Status;
|
|
SELECT DATABASE();
|
|
SHOW TABLES FROM adresses LIMIT 3;
|
|
" 2>/dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ Connexion réussie!"
|
|
else
|
|
echo "✗ Échec de la connexion"
|
|
fi
|
|
}
|
|
|
|
# Menu de sélection
|
|
echo ""
|
|
echo "Que voulez-vous configurer ?"
|
|
echo "1. Environnement DÉVELOPPEMENT uniquement (dva-maria)"
|
|
echo "2. Environnement RECETTE uniquement (rca-maria)"
|
|
echo "3. Environnement PRODUCTION uniquement (pra-maria)"
|
|
echo "4. Tous les environnements"
|
|
echo ""
|
|
read -p "Votre choix (1-4): " choice
|
|
|
|
case $choice in
|
|
1)
|
|
create_user_on_container "dva-maria" "13.23.33.4%" "DÉVELOPPEMENT"
|
|
;;
|
|
2)
|
|
create_user_on_container "rca-maria" "13.23.33.3%" "RECETTE"
|
|
;;
|
|
3)
|
|
create_user_on_container "pra-maria" "13.23.33.2%" "PRODUCTION"
|
|
;;
|
|
4)
|
|
create_user_on_container "dva-maria" "13.23.33.4%" "DÉVELOPPEMENT"
|
|
create_user_on_container "rca-maria" "13.23.33.3%" "RECETTE"
|
|
create_user_on_container "pra-maria" "13.23.33.2%" "PRODUCTION"
|
|
;;
|
|
*)
|
|
echo "Choix invalide"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# Tests de connexion
|
|
echo ""
|
|
echo "=========================================================="
|
|
echo "Tests de connexion"
|
|
echo "=========================================================="
|
|
|
|
read -p "Voulez-vous tester les connexions? (o/n): " test_choice
|
|
if [ "$test_choice" = "o" ]; then
|
|
case $choice in
|
|
1)
|
|
test_connection "dva-api" "13.23.33.46" "DÉVELOPPEMENT"
|
|
;;
|
|
2)
|
|
test_connection "rca-api" "13.23.33.36" "RECETTE"
|
|
;;
|
|
3)
|
|
test_connection "pra-api" "13.23.33.26" "PRODUCTION"
|
|
;;
|
|
4)
|
|
test_connection "dva-api" "13.23.33.46" "DÉVELOPPEMENT"
|
|
test_connection "rca-api" "13.23.33.36" "RECETTE"
|
|
test_connection "pra-api" "13.23.33.26" "PRODUCTION"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
echo ""
|
|
echo "Configuration terminée!"
|
|
echo ""
|
|
echo "Récapitulatif de la sécurité mise en place :"
|
|
echo "- Chaque environnement a sa propre plage d'IPs autorisée"
|
|
echo "- DÉVELOPPEMENT : seuls les containers en 13.23.33.4x peuvent accéder à dva-maria"
|
|
echo "- RECETTE : seuls les containers en 13.23.33.3x peuvent accéder à rca-maria"
|
|
echo "- PRODUCTION : seuls les containers en 13.23.33.2x peuvent accéder à pra-maria"
|
|
echo ""
|
|
echo "Cela empêche un container de DEV d'accéder aux données de PROD par exemple." |