Problème ajout utilisateur Entra ID

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
Répondre
Manu
Gsup LEVEL 0
Messages : 3
Enregistré le : ven. 2 févr. 2024 10:21

Bonjour,
Je vous remercie d'avoir pris le temps de s'arrêter sur mon problème.

Je n'arrive plus à synchroniser mon Entra ID avec mes utilisateurs locaux.
Le bouton "lancer une simulation" fonctionne, mais lorsque je fais " Lancer la synchronisation" aucun changement ne se réalise.

Avant de commencer, voici mes informations serveur:
MariaDB : 10.11.4-MariaDB-1~deb12u1 (base : bsup 618.8Mo)
PHP : 8.2.14 (/etc/php/8.2/apache2/php.ini)
GestSup : 3.2.52 (6029 tickets / 787 utilisateurs / 0 équipements)

Lorsque j'active le mode "debug", voici le message d'erreur du "Lancer ka synchronisation":
Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user_id' cannot be null in /var/www/html/core/azure_ad.php:639 Stack trace: #0 /var/www/html/core/azure_ad.php(639): PDOStatement->execute() #1 /var/www/html/admin/user.php(178): include('...') #2 /var/www/html/admin.php(22): include('...') #3 /var/www/html/main.php(520): include('...') #4 /var/www/html/index.php(405): require('...') #5 {main} thrown in /var/www/html/core/azure_ad.php on line 639



Lorsque je cherche dans le dossier /var/www/html/core/azure_ad.php , voici le passage de la ligne 621 à 642 :
//Entra ID service already exist in GS DB
} else {
//check if exist an association with current GS user and service.
$qry=$db->prepare("SELECT `id`,`user_id` FROM `tusers_services` WHERE user_id IN (SELECT id FROM tusers WHERE azure_ad_id=:azure_ad_id) AND service_id=:service_id");
$qry->execute(array('azure_ad_id' => $AzureUser['id'],'service_id' => $service['id']));
$row=$qry->fetch();
$qry->closeCursor();
if(empty($row))//if no association found create it
{
$update=1;
echo '<i class="fa fa-sync text-warning"></i> <i class="fa fa-users text-warning"></i> '.T_('Mise à jour du service').' '.$AzureUser['service'].' pour '.$AzureUser['upn'].'<br />';
//delete old association
$qry=$db->prepare("DELETE FROM tusers_services WHERE user_id IN (SELECT id FROM tusers WHERE azure_ad_id=:azure_ad_id)");
$qry->execute(array('azure_ad_id' => $AzureUser['id']));
//create association
if($_GET['action']=='run')
{
$qry=$db->prepare("INSERT INTO tusers_services (user_id,service_id) VALUES ((SELECT MAX(id) FROM tusers WHERE azure_ad_id=:azure_ad_id),:service_id)");
$qry->execute(array('azure_ad_id' => $AzureUser['id'],'service_id' => $service['id']));
}
}


Pouvez-vous m'aider s'il vous plait ?

Bonne journée
Manu
Fichiers joints
azure_ad.doc
(51.71 Kio) Téléchargé 2 fois
Avatar du membre
Flox
Administrateur du site
Messages : 9431
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

Pouvez-vous transmettre l'ensemble de la page affichée lors de la simulation de synchronisation avec le mode debug.

Et indiquer si le test du connecteur fonctionne ?

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Manu
Gsup LEVEL 0
Messages : 3
Enregistré le : ven. 2 févr. 2024 10:21

Le test du connecteur fonctionne.
De plus il trouve bien les modifications a faire lors de la simulation.
Lors de la synchronisation il dit effectuer des changement mais c'est faux.
Fichiers joints
Capture d’écran 2024-11-21 160243.png
Capture d’écran 2024-11-21 160243.png (126.08 Kio) Vu 14 fois
Répondre