# Autorisations entre groupes Introduction - Une nouvelle fonctionnalité apparaît sur We-Go, celle de l'autorisation entre groupes. Dorénavant, un groupe définit ceux qui peuvent se charger chez eux, autrement, l'autorisation sera définit par les emsps. Fonctionnement - Par défaut, un groupe autorise uniquement les personnes de son propre groupe à pouvoir se charger chez eux. Si on souhaite que les utilisateurs puissent se recharger chez leurs groupes enfants, il faut alors le configurer. Autoriser un groupe à se charger chez soit n'assure pas la réciprocité. Configuration - La configuration globale actuelle mise en place est la suivante : - Pour les **Clients Externes**, chaque groupe n'autorise que lui-même et ses enfants si existants - Pour les groupes issues de **Eiffage**, au premier niveau, on autorise **Eiffage** à se charger chez le groupe sauf pour **Eiffage Energie Systèmes** - Pour les groupe issues de **Eiffage Energie Systèmes**, au premier niveau, là encore, on autorise Eiffage à se charger chez le groupe sauf pour **DR_EST** Pour configurer une autorisation, vous devez vous rendre sur la page spécifique d'un groupe, dans l'onglet *"**Autorisations**"* tel que : [![](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/scaled-1680-/image-1772010872116.png)](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/image-1772010872116.png) Depuis cet interface, vous pouvez voir les groupes autorisés à se charger, mais également, vous pouvez définir d'autres autorisations. Le bouton *"**Autoriser les utilisateurs issus des groupes enfants à venir se charger sur les bornes de ce groupe**"* permet que les groupes enfants de ce dernier puissent se charger chez lui et inversement. En cochant le bouton, on définit en l'occurence que le groupe "**DR_EST**" est autorisé à se charger chez "**DR_EST**" donc ça comprend le groupe et ses enfants. Tandis que le second paramètre *"**Autoriser les utilisateurs de ce groupe à se charger sur les bornes de ce groupe**"* est activé par défaut, cela permet aux utilisateurs possédant un rôle sur **DR_EST** de pouvoir se charger sur les bornes des stations associées à ce groupe. Si on décoche ce paramètre, cela empêche les utilisateurs internes de ce groupe à pouvoir se charger directement, ils passeront alors via Fulli. [![](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/scaled-1680-/image-1772011097623.png)](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/image-1772011097623.png) Pour créer une nouvelle autorisation, vous pouvez cliquer sur le bouton *"**Autoriser un groupe à se charger**"*, ce qui affichera une boite de dialogue vous demandant le groupe à ajouter. [![](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/scaled-1680-/image-1772011148932.png)](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/image-1772011148932.png) Une fois l'autorisation créée, vous aurez la possibilité de supprimer cette dernière ci-besoin grâce au bouton rouge adéquat. Etablir Fulli pour l'ensemble d'un groupe - Nous allons analyser le cas **DR_EST** pour déterminer si les sessions de charges de ce groupe et ses sous-groupes sont liées à `Fulli` et comment mettre en place cette configuration. #### Conditions - Décocher *"**Autoriser les utilisateurs de ce groupe à se charger sur les bornes de ce groupe**"* sur chacun des groupes - Pas de règles d'autorisations établis tant sur les parents que sur eux-même si cela peut compromettre les charges Pour la 2e règle, si **Eiffage Energie Systèmes**, qui est parent de **DR_EST**, autorise **TEST ET ESSAIS** ce n'est pas impactant car c'est un groupe externe. En revanche, si il autorise **DR_EST** directement par exemple, alors tous les sous groupes pourront se charger sans passer par `Fulli`. #### Algorithme Tout d'abord, un bref rappel de l'algorithme pour déterminer les autorisations entre groupes : Par défaut, on peut se charger dans son propre groupe (l'utilisateur doit posséder un rôle direct). - Si `source` autorise `target` -> **Autorisé** - Si `parent source` autorise `target` -> **Autorisé** - Si `source` autorise `parent target` -> **Autorisé** - Si `parent source` autorise `parent target` -> **Autorisé** - Si on a décoché la charge sur son groupe et définis aucune autorisation -> **Refusé** pour tous - Si on a coché la charge sur son groupe et définis aucune autorisation -> **Refusé** pour utilisateurs externes mais pas internes (possède un rôle sur le groupe) - Si des autorisations existent mais sont softdelete -> **Refusé** Dès lors qu'on est refusé, on bascule sur les emsps. #### Vérifier les autorisations point de vue dev Récupérons dans un premier temps les id des groupes grâce à : ```sql WITH RECURSIVE GroupHierarchy AS ( SELECT g.id, g.name, g.id_parent_group as idParentGroup FROM groups AS g WHERE g.id = ? AND g.deleted_at IS NULL UNION ALL SELECT g.id, g.name, g.id_parent_group as idParentGroup FROM groups AS g JOIN GroupHierarchy AS rgh ON g.id_parent_group = rgh.id WHERE g.id_parent_group IS NOT NULL AND g.deleted_at IS NULL ) SELECT GROUP_CONCAT(id) AS group_ids FROM GroupHierarchy; ``` Avec `?` étant l'id du groupe que l'on souhaite observer, ici `24` pour **DR_EST**. Il ne faut pas oublier également les groupes parents de **DR_EST** soit `23` **Eiffage Energie Systèmes**, `185` **Eiffage** et `1` **Wego** car ils ne doivent pas contenir de règles d'autorisations pouvant impacter les enfants, en l'occurence **DR_EST**. [![](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/scaled-1680-/image-1772013859343.png)](https://doc-test.we-go.pro/uploads/images/gallery/2026-02/image-1772013859343.png) On récupère donc les règles d'autorisations sur les parents : ```sql SELECT * FROM group_access_authorizations where id_source_group IN (23, 185, 1) ADN deleted_at IS NULL; ``` Cela nous donne les autorisations accordées sur **Eiffage Energie Systèmes**, **Eiffage** et **Wego**. On voit ainsi qu'aucune règle n'a été établie. On reproduit l'étape cette fois ci pour **DR_EST** et ses sous groupes que l'on a récupéré ci-dessus. ```sql +----+-----------------+-----------------+---------------------+---------------------+------------+ | id | id_source_group | id_target_group | created_at | updated_at | deleted_at | +----+-----------------+-----------------+---------------------+---------------------+------------+ | 51 | 34 | 185 | 2026-01-07 13:56:01 | 2026-01-07 13:56:01 | NULL | | 52 | 64 | 185 | 2026-01-07 13:56:48 | 2026-01-07 13:56:48 | NULL | | 53 | 168 | 185 | 2026-01-07 13:57:08 | 2026-01-07 13:57:08 | NULL | | 54 | 197 | 185 | 2026-01-07 13:57:44 | 2026-01-07 13:57:44 | NULL | | 55 | 891 | 185 | 2026-01-07 13:58:15 | 2026-01-07 13:58:15 | NULL | | 56 | 1070 | 185 | 2026-01-07 13:58:34 | 2026-01-07 13:58:34 | NULL | +----+-----------------+-----------------+---------------------+---------------------+------------+ ``` On observe alors différentes autorisations établies qui permettent à **Eiffage** de pouvoir se charger. Enfin dernière étape, on vérifie les `configurations_group` pour déterminer si on a bien décoché la charge sur son propre groupe avec : ```sql SELECT * FROM configurations_group where id_group IN () AND configuration LIKE "%authorizeChargeOwnUsers%" AND deleted_at IS NULL; ``` Avec cette requête on voit que seuls les groupes `39` et `445` ont désactivé la charge chez soit car si `authorizeChargeOwnUsers: true` ou n'est pas définis alors on considère **true**. Pour passer outre la configuration initiale de pouvoir se charger sur son propre groupe, il faut expliciter `authorizeChargeOwnUsers: false`. #### Conclusion Dans **DR_EST** et ses sous groupes : - **BU_00318_LUDRES** et **BU_00150** sont les seuls à être Fulli Only. - **BU_02154_TROYES**, **BU_04038_BESANCON**, **BU_04038_CHALON/SAONE**, **BU04759 Metz**, **BU_04570 Chalon** et **BU_04034_IT_LAN_ARCELORMITAL_FLORANGE** autorisent tout **Eiffage** + leur propre utilisateurs - Le reste des groupes autorisent leur propre utilisateurs Sur l'ensemble des groupes, les utilisateurs internes peuvent se charger directement sans passer par Fulli. Ce qu'il faut faire pour que tout passe par Fulli sur les sous groupes **DR_EST** : - Décocher la charge sur son groupe pour ceux qui ne l'ont pas (`authorizeChargeOwnUsers: false)`) - Supprimer les autorisations sur les groupes **BU_02154_TROYES**, **BU_04038_BESANCON**, **BU_04038_CHALON/SAONE**, **BU04759 Metz**, **BU_04570 Chalon** et **BU_04034_IT_LAN_ARCELORMITAL_FLORANGE** Script SQL - Je met à disposition le script qui a déjà été injecté : ``` sql --Sous groupes de Eiffage Energie Systemes 24 sauf DR EST -- CY_MULHOUSE INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (1, 67, 185, NOW(), NOW(), NULL); -- DR Hauts de france INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (2, 50, 185, NOW(), NOW(), NULL); -- DR I2S INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (3, 217, 185, NOW(), NOW(), NULL); -- DR MEDITERRANEE INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (4, 488, 185, NOW(), NOW(), NULL); -- DR Nouvelle Aquitaine INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (5, 165, 185, NOW(), NOW(), NULL); -- DR Occitanie INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (6, 334, 185, NOW(), NOW(), NULL); -- DR OUEST INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (7, 143, 185, NOW(), NOW(), NULL); -- DR IDF ELEC INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (8, 882, 185, NOW(), NOW(), NULL); -- EES Site Verquin INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (9, 490, 185, NOW(), NOW(), NULL); -- EES ACCESS GROUP ANNECY BU 04604 INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (10, 565, 185, NOW(), NOW(), NULL); -- EES Centre Normandie INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (11, 179, 185, NOW(), NOW(), NULL); -- EES NAT Allemagne INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (12, 1000, 185, NOW(), NOW(), NULL); -- EES DR CENTRE EST INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (13, 223, 185, NOW(), NOW(), NULL); -- EES NORD INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (14, 53, 185, NOW(), NOW(), NULL); -- Eiffage Rail 2 INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (15, 506, 185, NOW(), NOW(), NULL); -- EMX INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (16, 941, 185, NOW(), NOW(), NULL); -- Pole Sud Alsace INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (17, 280, 185, NOW(), NOW(), NULL); -- Reseau Mobile INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (18, 354, 185, NOW(), NOW(), NULL); --Sous groupes de Eiffage 185 sauf Eiffage Energie Systeme -- 00860 Grand Sud Industries INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (19, 187, 185, NOW(), NOW(), NULL); -- APRR AREA INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (20, 189, 185, NOW(), NOW(), NULL); -- CONCESSION INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (21, 191, 185, NOW(), NOW(), NULL); -- DG EIFFAGE INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (22, 118, 185, NOW(), NOW(), NULL); -- Eiffage Construction INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (23, 553, 185, NOW(), NOW(), NULL); -- Eiffage Deutschland INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (24, 1021, 185, NOW(), NOW(), NULL); -- Eiffage Infrastructure INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (25, 186, 185, NOW(), NOW(), NULL); -- Eiffage Services INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (26, 205, 185, NOW(), NOW(), NULL); -- EIFFAGE VELIZY INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (27, 229, 185, NOW(), NOW(), NULL); -- IMPORT VLZ INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (28, 780, 185, NOW(), NOW(), NULL); -- Sous Traitant INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (29, 1079, 185, NOW(), NOW(), NULL); --Sous groupes de Clients Externes -- Arlanxeo pas d'enfants -- Artois mobilites Lens pas d'enfants -- ASVEL INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (30, 1148, 1148, NOW(), NOW(), NULL); -- CAP Val de Saône INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (31, 267, 267, NOW(), NOW(), NULL); -- CCAS FOUGERES pas d'enfants -- Centrakor INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (32, 1001, 1001, NOW(), NOW(), NULL); -- Centre hospitalier de cholet INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (33, 926, 926, NOW(), NOW(), NULL); -- Charmes Automobiles INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (34, 169, 169, NOW(), NOW(), NULL); -- Communaute de communes Pays du mont blanc INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (35, 554, 554, NOW(), NOW(), NULL); -- Communaute de communes Thelloise pas d'enfants -- CPA REIMS INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (36, 550, 550, NOW(), NOW(), NULL); -- DAE 2025 INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (37, 997, 997, NOW(), NOW(), NULL); -- DG Des finances publiques DRFIP DIJON pas d'enfants -- EHPAD INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (38, 953, 953, NOW(), NOW(), NULL); -- Euroglas pas d'enfants -- Formes et sculptures bléré pas d'enfants -- GILL CORPORATION ANGLET pas d'enfants -- Glas trosch pas d'enfants -- GRDF INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (39, 733, 733, NOW(), NOW(), NULL); -- JEL Production Chalets Coeur du lac Malbuisson INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (40, 439, 439, NOW(), NOW(), NULL); -- John Deere INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (41, 1008, 1008, NOW(), NOW(), NULL); -- Kelois Bus Besancon pas d'enfants -- Mademoiselle desserts INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (42, 887, 887, NOW(), NOW(), NULL); -- Mairie velentigney pas d'eanfnts -- Marché aux affaires bourguignon pas d'enfants -- Noremat Ludres pas d'enfants -- Orange INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (43, 1106, 1106, NOW(), NOW(), NULL); -- PAX Strasbourg evenements INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (44, 925, 925, NOW(), NOW(), NULL); -- RTE INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (45, 597, 597, NOW(), NOW(), NULL); -- SIA Habitat INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (46, 992, 992, NOW(), NOW(), NULL); -- SKF Saint Cyr Sur Loire pas d'enfants -- Terres de montaigu communauté d'agglomération INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (47, 511, 511, NOW(), NOW(), NULL); -- Tun girève pas d'enfants -- Ville de Mantes La Jolie INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (48, 863, 863, NOW(), NOW(), NULL); -- Ville de senlis INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (49, 994, 994, NOW(), NOW(), NULL); -- Ville soissons INSERT INTO group_access_authorizations (id, id_source_group, id_target_group, created_at, updated_at, deleted_at) VALUES (50, 184, 184, NOW(), NOW(), NULL); -- Viskase thaon les vosges pas d'enfants ```