feat: Version 3.5.2 - Configuration Stripe et gestion des immeubles
- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD) * DEV: Clés TEST Pierre (mode test) * REC: Clés TEST Client (mode test) * PROD: Clés LIVE Client (mode live) - Ajout de la gestion des bases de données immeubles/bâtiments * Configuration buildings_database pour DEV/REC/PROD * Service BuildingService pour enrichissement des adresses - Optimisations pages et améliorations ergonomie - Mises à jour des dépendances Composer - Nettoyage des fichiers obsolètes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
210
bao/README.md
210
bao/README.md
@@ -7,16 +7,16 @@ Toolkit d'administration pour consulter et gérer les données chiffrées de l'A
|
||||
| Script | Description | Exemple |
|
||||
|--------|-------------|---------|
|
||||
| `./bin/bao` | Menu interactif principal | `./bin/bao` |
|
||||
| `./bin/search-user` | Rechercher un user par nom/prénom/username/secteur | `./bin/search-user rec dupont` |
|
||||
| `./bin/decrypt-user` | Afficher les infos complètes d'un user | `./bin/decrypt-user rec 123` |
|
||||
| `./bin/reset-password` | Générer et enregistrer un nouveau mot de passe | `./bin/reset-password rec 123` |
|
||||
| `./bin/search-email` | Rechercher par email | `./bin/search-email rec contact@example.com` |
|
||||
| `./bin/list-users` | Lister les utilisateurs | `./bin/list-users dev --entite=5` |
|
||||
| `./bin/search-entite` | Rechercher une entité (mode interactif) | `./bin/search-entite rec plumeliau` |
|
||||
| `./bin/decrypt-entite` | Afficher les infos complètes d'une entité | `./bin/decrypt-entite rec 10` |
|
||||
| `./bin/list-entites` | Lister les entités | `./bin/list-entites dev --stripe` |
|
||||
| `./bin/list-operations` | Lister les opérations | `./bin/list-operations dev --entite=5` |
|
||||
| `./bin/list-sectors` | Lister les secteurs d'une opération | `./bin/list-sectors dev --operation=123` |
|
||||
| `./bin/search-user` | Rechercher un user par nom/prénom/username/secteur | `./bin/search-user rca dupont` |
|
||||
| `./bin/decrypt-user` | Afficher les infos complètes d'un user | `./bin/decrypt-user rca 123` |
|
||||
| `./bin/reset-password` | Générer et enregistrer un nouveau mot de passe | `./bin/reset-password rca 123` |
|
||||
| `./bin/search-email` | Rechercher par email | `./bin/search-email rca contact@example.com` |
|
||||
| `./bin/list-users` | Lister les utilisateurs | `./bin/list-users dva --entite=5` |
|
||||
| `./bin/search-entite` | Rechercher une entité (mode interactif) | `./bin/search-entite rca plumeliau` |
|
||||
| `./bin/decrypt-entite` | Afficher les infos complètes d'une entité | `./bin/decrypt-entite rca 10` |
|
||||
| `./bin/list-entites` | Lister les entités | `./bin/list-entites dva --stripe` |
|
||||
| `./bin/list-operations` | Lister les opérations | `./bin/list-operations dva --entite=5` |
|
||||
| `./bin/list-sectors` | Lister les secteurs d'une opération | `./bin/list-sectors dva --operation=123` |
|
||||
|
||||
## 📋 Vue d'ensemble
|
||||
|
||||
@@ -24,25 +24,37 @@ BAO est un ensemble de scripts **indépendants de l'API** permettant de :
|
||||
- Consulter les données **déchiffrées** des utilisateurs et entités
|
||||
- Rechercher dans les champs chiffrés (username, nom, email)
|
||||
- Réinitialiser les mots de passe utilisateurs
|
||||
- Se connecter aux **3 environnements** (DEV, REC, PROD) via tunnels SSH
|
||||
- Se connecter aux **3 environnements** (DVA, RCA, PRA) via tunnels SSH
|
||||
- Vérifier l'intégrité du chiffrement AES-256-CBC
|
||||
|
||||
## 🏗️ Architecture
|
||||
|
||||
### Depuis le PC (via tunnels SSH)
|
||||
|
||||
```
|
||||
PC Bureau (localhost)
|
||||
↓ SSH Tunnels
|
||||
├─→ IN3/dva-geo (DEV) → localhost:3306 → geo_app
|
||||
├─→ IN3/rca-geo (REC) → localhost:3306 → geo_app
|
||||
└─→ IN4/pra-geo (PROD) → localhost:3306 → pra_geo
|
||||
├─→ IN3/dva-geo → IN3/maria3:3306 → dva_geo
|
||||
├─→ IN3/rca-geo → IN3/maria3:3306 → rca_geo
|
||||
└─→ IN4/pra-geo → IN4/maria4:3306 → pra_geo
|
||||
```
|
||||
|
||||
### Depuis les containers (connexion directe)
|
||||
|
||||
```
|
||||
IN3/dva-geo ──→ 13.23.33.4:3306 (maria3) → dva_geo
|
||||
IN3/rca-geo ──→ 13.23.33.4:3306 (maria3) → rca_geo
|
||||
IN4/pra-geo ──→ 13.23.33.4:3306 (maria4) → pra_geo
|
||||
```
|
||||
|
||||
### Connexions SSH
|
||||
|
||||
Les tunnels SSH sont gérés automatiquement via `~/.ssh/config` :
|
||||
- **vpn-dva-geo** : Container DEV sur IN3 (via VPN)
|
||||
- **vpn-rca-geo** : Container REC sur IN3 (via VPN)
|
||||
- **pra-geo** : Container PROD sur IN4 (désactivé)
|
||||
- **vpn-dva-geo** : Container DVA sur IN3 (via VPN)
|
||||
- **vpn-rca-geo** : Container RCA sur IN3 (via VPN)
|
||||
- **pra-geo** : Container PRA sur IN4 (désactivé)
|
||||
|
||||
**Note** : Depuis les containers, les tunnels SSH ne sont **pas nécessaires**. BAO se connecte directement aux bases maria3/maria4.
|
||||
|
||||
## 📦 Installation
|
||||
|
||||
@@ -60,14 +72,64 @@ ssh vpn-rca-geo 'echo OK'
|
||||
|
||||
### 2. Configuration
|
||||
|
||||
#### Sur le PC
|
||||
|
||||
```bash
|
||||
cd /home/pierre/dev/geosector/bao
|
||||
|
||||
# Le fichier .env est déjà créé avec les bonnes valeurs
|
||||
# Vérifier la configuration
|
||||
# Copier le template et adapter
|
||||
cp config/.env.example config/.env
|
||||
|
||||
# Les valeurs par défaut sont configurées pour utiliser les tunnels SSH
|
||||
# vers dva-geo (port 3307) et rca-geo (port 3308)
|
||||
cat config/.env
|
||||
```
|
||||
|
||||
#### Sur les containers (après déploiement)
|
||||
|
||||
Le script `deploy-bao.sh` copie automatiquement `config/.env.container` vers `config/.env`.
|
||||
|
||||
Cette configuration utilise les connexions **directes** vers maria3/maria4 (pas de tunnels SSH).
|
||||
|
||||
## 📦 Déploiement sur les containers
|
||||
|
||||
BAO peut être déployé sur les containers pour une utilisation directe sur les serveurs.
|
||||
|
||||
### Déployer sur DVA (IN3/dva-geo)
|
||||
|
||||
```bash
|
||||
cd /home/pierre/dev/geosector/bao
|
||||
./deploy-bao.sh
|
||||
```
|
||||
|
||||
### Déployer sur RECETTE (IN3/rca-geo)
|
||||
|
||||
```bash
|
||||
cd /home/pierre/dev/geosector/bao
|
||||
./deploy-bao.sh rca
|
||||
```
|
||||
|
||||
### Déployer sur PRODUCTION (IN4/pra-geo)
|
||||
|
||||
```bash
|
||||
cd /home/pierre/dev/geosector/bao
|
||||
./deploy-bao.sh pra
|
||||
```
|
||||
|
||||
### Utiliser BAO sur un container
|
||||
|
||||
```bash
|
||||
# Connexion au container
|
||||
ssh -i ~/.ssh/id_rsa_mbpi root@195.154.80.116 'incus exec rca-geo -- bash'
|
||||
|
||||
# Lancer BAO
|
||||
cd /var/www/geosector/bao
|
||||
./bin/bao
|
||||
|
||||
# Ou directement un script
|
||||
./bin/search-user rca dupont
|
||||
```
|
||||
|
||||
## 🚀 Utilisation
|
||||
|
||||
### Menu interactif principal
|
||||
@@ -78,7 +140,7 @@ cd /home/pierre/dev/geosector/bao
|
||||
```
|
||||
|
||||
Menu avec :
|
||||
1. Sélection de l'environnement (DEV/REC/PROD)
|
||||
1. Sélection de l'environnement (DVA/RCA/PRA)
|
||||
2. Actions disponibles (liste, recherche, décryptage)
|
||||
3. Gestion automatique des tunnels SSH
|
||||
|
||||
@@ -88,9 +150,9 @@ Menu avec :
|
||||
|
||||
```bash
|
||||
# Rechercher par nom, prénom, username ou secteur
|
||||
./bin/search-user dev dupont
|
||||
./bin/search-user rec pv_admin
|
||||
./bin/search-user dev jean
|
||||
./bin/search-user dva dupont
|
||||
./bin/search-user rca pv_admin
|
||||
./bin/search-user dva jean
|
||||
```
|
||||
|
||||
**Fonctionnalités :**
|
||||
@@ -102,8 +164,8 @@ Menu avec :
|
||||
#### Décrypter un utilisateur
|
||||
|
||||
```bash
|
||||
./bin/decrypt-user dev 123
|
||||
./bin/decrypt-user rec 456
|
||||
./bin/decrypt-user dva 123
|
||||
./bin/decrypt-user rca 456
|
||||
```
|
||||
|
||||
**Affiche :**
|
||||
@@ -114,8 +176,8 @@ Menu avec :
|
||||
#### Réinitialiser un mot de passe
|
||||
|
||||
```bash
|
||||
./bin/reset-password dev 123
|
||||
./bin/reset-password rec 456
|
||||
./bin/reset-password dva 123
|
||||
./bin/reset-password rca 456
|
||||
```
|
||||
|
||||
**Fonctionnalités :**
|
||||
@@ -128,8 +190,8 @@ Menu avec :
|
||||
#### Décrypter une entité (amicale)
|
||||
|
||||
```bash
|
||||
./bin/decrypt-entite dev 5
|
||||
./bin/decrypt-entite rec 10
|
||||
./bin/decrypt-entite dva 5
|
||||
./bin/decrypt-entite rca 10
|
||||
```
|
||||
|
||||
**Affiche :**
|
||||
@@ -143,19 +205,19 @@ Menu avec :
|
||||
|
||||
```bash
|
||||
# Tous les utilisateurs (limite 50)
|
||||
./bin/list-users dev
|
||||
./bin/list-users dva
|
||||
|
||||
# Filtrer par entité
|
||||
./bin/list-users dev --entite=5
|
||||
./bin/list-users dva --entite=5
|
||||
|
||||
# Filtrer par rôle
|
||||
./bin/list-users rec --role=2
|
||||
./bin/list-users rca --role=2
|
||||
|
||||
# Limite personnalisée
|
||||
./bin/list-users dev --limit=100
|
||||
./bin/list-users dva --limit=100
|
||||
|
||||
# Combinaison de filtres
|
||||
./bin/list-users dev --entite=5 --role=2 --limit=20
|
||||
./bin/list-users dva --entite=5 --role=2 --limit=20
|
||||
```
|
||||
|
||||
**Affiche :** Tableau avec username, email, nom (déchiffrés)
|
||||
@@ -164,9 +226,9 @@ Menu avec :
|
||||
|
||||
```bash
|
||||
# Rechercher par nom, adresse, ville ou email
|
||||
./bin/search-entite dev plumeliau
|
||||
./bin/search-entite rec amicale
|
||||
./bin/search-entite dev appli
|
||||
./bin/search-entite dva plumeliau
|
||||
./bin/search-entite rca amicale
|
||||
./bin/search-entite dva appli
|
||||
```
|
||||
|
||||
**Fonctionnalités :**
|
||||
@@ -182,13 +244,13 @@ Menu avec :
|
||||
|
||||
```bash
|
||||
# Toutes les entités
|
||||
./bin/list-entites dev
|
||||
./bin/list-entites dva
|
||||
|
||||
# Uniquement celles avec Stripe activé
|
||||
./bin/list-entites dev --stripe
|
||||
./bin/list-entites dva --stripe
|
||||
|
||||
# Limite personnalisée
|
||||
./bin/list-entites rec --limit=20
|
||||
./bin/list-entites rca --limit=20
|
||||
```
|
||||
|
||||
**Affiche :** Tableau avec nom, email (déchiffrés), stats
|
||||
@@ -197,13 +259,13 @@ Menu avec :
|
||||
|
||||
```bash
|
||||
# Toutes les opérations
|
||||
./bin/list-operations dev
|
||||
./bin/list-operations dva
|
||||
|
||||
# Opérations d'une entité spécifique
|
||||
./bin/list-operations dev --entite=5
|
||||
./bin/list-operations dva --entite=5
|
||||
|
||||
# Limite personnalisée
|
||||
./bin/list-operations rec --entite=10 --limit=20
|
||||
./bin/list-operations rca --entite=10 --limit=20
|
||||
```
|
||||
|
||||
**Affiche :** Tableau avec entité, libellé, dates, nb passages, nb users, nb secteurs
|
||||
@@ -212,8 +274,8 @@ Menu avec :
|
||||
|
||||
```bash
|
||||
# Secteurs d'une opération spécifique
|
||||
./bin/list-sectors dev --operation=123
|
||||
./bin/list-sectors rec --operation=456
|
||||
./bin/list-sectors dva --operation=123
|
||||
./bin/list-sectors rca --operation=456
|
||||
```
|
||||
|
||||
**Fonctionnalités :**
|
||||
@@ -228,8 +290,8 @@ Menu avec :
|
||||
#### Rechercher par email
|
||||
|
||||
```bash
|
||||
./bin/search-email dev contact@example.com
|
||||
./bin/search-email rec admin@amicale.fr
|
||||
./bin/search-email dva contact@example.com
|
||||
./bin/search-email rca admin@amicale.fr
|
||||
```
|
||||
|
||||
**Fonctionnalités :**
|
||||
@@ -244,11 +306,11 @@ Menu avec :
|
||||
./bin/_ssh-tunnel.sh status
|
||||
|
||||
# Ouvrir un tunnel manuellement
|
||||
./bin/_ssh-tunnel.sh open dev
|
||||
./bin/_ssh-tunnel.sh open rec
|
||||
./bin/_ssh-tunnel.sh open dva
|
||||
./bin/_ssh-tunnel.sh open rca
|
||||
|
||||
# Fermer un tunnel
|
||||
./bin/_ssh-tunnel.sh close dev
|
||||
./bin/_ssh-tunnel.sh close dva
|
||||
|
||||
# Fermer tous les tunnels
|
||||
./bin/_ssh-tunnel.sh close-all
|
||||
@@ -260,10 +322,12 @@ Menu avec :
|
||||
bao/
|
||||
├── README.md # Cette documentation
|
||||
├── .gitignore # Exclut config/.env
|
||||
├── deploy-bao.sh # Script de déploiement vers containers
|
||||
│
|
||||
├── config/
|
||||
│ ├── .env # Configuration (gitignored)
|
||||
│ ├── .env.example # Template
|
||||
│ ├── .env # Configuration locale (gitignored)
|
||||
│ ├── .env.example # Template pour utilisation PC (tunnels SSH)
|
||||
│ ├── .env.container # Template pour utilisation containers (connexion directe)
|
||||
│ └── database.php # Classe DatabaseConfig
|
||||
│
|
||||
├── lib/
|
||||
@@ -354,12 +418,22 @@ lsof -i :3309
|
||||
|
||||
### Erreur : "Impossible de se connecter à la base"
|
||||
|
||||
#### Depuis le PC
|
||||
|
||||
```bash
|
||||
# Vérifier que le tunnel est actif
|
||||
./bin/_ssh-tunnel.sh status
|
||||
|
||||
# Tester manuellement
|
||||
ssh dva-geo 'mysql -u geo_app_user_dev -p geo_app -e "SELECT 1"'
|
||||
# Tester manuellement la connexion au tunnel
|
||||
nc -zv 127.0.0.1 3307 # Pour DVA
|
||||
nc -zv 127.0.0.1 3308 # Pour RCA
|
||||
```
|
||||
|
||||
#### Depuis un container
|
||||
|
||||
```bash
|
||||
# Tester la connexion directe vers maria3/maria4
|
||||
mysql -h 13.23.33.4 -u dva_geo_user -p dva_geo -e "SELECT 1"
|
||||
```
|
||||
|
||||
### Erreur : "Échec du déchiffrement"
|
||||
@@ -384,7 +458,7 @@ chmod +x bin/*
|
||||
### Cas d'usage 1 : Rechercher un utilisateur par nom
|
||||
|
||||
```bash
|
||||
./bin/search-user rec dupont
|
||||
./bin/search-user rca dupont
|
||||
```
|
||||
|
||||
Résultat : Tableau des utilisateurs contenant "dupont" (nom, prénom, username ou secteur)
|
||||
@@ -392,8 +466,8 @@ Résultat : Tableau des utilisateurs contenant "dupont" (nom, prénom, username
|
||||
### Cas d'usage 2 : Réinitialiser le mot de passe d'un utilisateur
|
||||
|
||||
```bash
|
||||
./bin/search-user rec martin # Trouver l'ID
|
||||
./bin/reset-password rec 56930 # Réinitialiser avec l'ID
|
||||
./bin/search-user rca martin # Trouver l'ID
|
||||
./bin/reset-password rca 56930 # Réinitialiser avec l'ID
|
||||
```
|
||||
|
||||
Résultat : Nouveau mot de passe généré et affiché en clair
|
||||
@@ -401,7 +475,7 @@ Résultat : Nouveau mot de passe généré et affiché en clair
|
||||
### Cas d'usage 3 : Trouver tous les comptes d'un email
|
||||
|
||||
```bash
|
||||
./bin/search-email dev contact@amicale.fr
|
||||
./bin/search-email dva contact@amicale.fr
|
||||
```
|
||||
|
||||
Résultat : Liste tous les utilisateurs avec cet email (peut être multiple)
|
||||
@@ -409,7 +483,7 @@ Résultat : Liste tous les utilisateurs avec cet email (peut être multiple)
|
||||
### Cas d'usage 4 : Lister les admins d'une amicale
|
||||
|
||||
```bash
|
||||
./bin/list-users dev --entite=5 --role=2
|
||||
./bin/list-users dva --entite=5 --role=2
|
||||
```
|
||||
|
||||
Résultat : Tableau des administrateurs (rôle 2) de l'entité 5
|
||||
@@ -417,7 +491,7 @@ Résultat : Tableau des administrateurs (rôle 2) de l'entité 5
|
||||
### Cas d'usage 5 : Explorer une entité (mode interactif)
|
||||
|
||||
```bash
|
||||
./bin/search-entite rec plumeliau # Rechercher l'entité
|
||||
./bin/search-entite rca plumeliau # Rechercher l'entité
|
||||
# Sélectionner n° de ligne: 1
|
||||
# Choisir action: 2 (Opérations)
|
||||
```
|
||||
@@ -427,7 +501,7 @@ Résultat : Workflow complet pour explorer une entité et ses données liées
|
||||
### Cas d'usage 6 : Vérifier les entités avec Stripe
|
||||
|
||||
```bash
|
||||
./bin/list-entites dev --stripe
|
||||
./bin/list-entites dva --stripe
|
||||
```
|
||||
|
||||
Résultat : Toutes les amicales ayant activé Stripe Connect
|
||||
@@ -435,7 +509,7 @@ Résultat : Toutes les amicales ayant activé Stripe Connect
|
||||
### Cas d'usage 7 : Lister les opérations d'une entité
|
||||
|
||||
```bash
|
||||
./bin/list-operations rec --entite=662
|
||||
./bin/list-operations rca --entite=662
|
||||
```
|
||||
|
||||
Résultat : Tableau des opérations avec stats (passages, users, secteurs)
|
||||
@@ -443,7 +517,7 @@ Résultat : Tableau des opérations avec stats (passages, users, secteurs)
|
||||
### Cas d'usage 8 : Explorer les secteurs d'une opération
|
||||
|
||||
```bash
|
||||
./bin/list-sectors dev --operation=123
|
||||
./bin/list-sectors dva --operation=123
|
||||
```
|
||||
|
||||
Résultat : Tableau des secteurs avec nb users/passages + stats globales
|
||||
@@ -451,7 +525,7 @@ Résultat : Tableau des secteurs avec nb users/passages + stats globales
|
||||
### Cas d'usage 9 : Audit complet d'un utilisateur
|
||||
|
||||
```bash
|
||||
./bin/decrypt-user dev 123
|
||||
./bin/decrypt-user dva 123
|
||||
```
|
||||
|
||||
Résultat : Toutes les informations déchiffrées + métadonnées
|
||||
@@ -477,14 +551,14 @@ Résultat : Toutes les informations déchiffrées + métadonnées
|
||||
|
||||
## 📝 Notes
|
||||
|
||||
### Environnement PROD
|
||||
### Environnement PRA
|
||||
|
||||
⚠️ **Attention :** L'environnement PROD n'est **pas encore créé** (base de données inexistante).
|
||||
⚠️ **Attention :** L'environnement PRA n'est **pas encore créé** (base de données inexistante).
|
||||
|
||||
Pour l'activer :
|
||||
1. Créer la base `pra_geo` sur IN4/maria4
|
||||
2. Migrer les données depuis REC
|
||||
3. Changer `PROD_ENABLED=true` dans `config/.env`
|
||||
2. Migrer les données depuis RCA
|
||||
3. Changer `PRA_ENABLED=true` dans `config/.env`
|
||||
|
||||
### Comptes multiples par email
|
||||
|
||||
|
||||
Reference in New Issue
Block a user