Anomalie #16835
fermé[Synchro LDAP] users : perte de l'entité par défaut a la création
Description
Bonjour,
Suite à plusieurs tests et corrections, je vous propose la modification suivante pour le fichier : /bin/ldap/synchronizationScript.php
L'entité par défaut n'est plus présente suite à une correction.
ajout d'une fonction :
function userAddEntity($userId, $user)
{
$entityId = null;
$entityExists = \Entity\models\EntityModel::getByEntityId(['entityId' => $user['entityId'], 'select' => [1]]);
$defaultEntityExists = \Entity\models\EntityModel::getByEntityId(['entityId' => $user['defaultEntity'], 'select' => [1]]);
if(count($entityExists) > 0) $entityId = $user['entityId'];
else if (count($defaultEntityExists) > 0) $entityId = $user['defaultEntity'];
if(!empty($entityId))
{
$curlResponse = \SrcCore\models\CurlModel::execSimple([
'url' => rtrim($GLOBALS['maarchUrl'], '/') . '/rest/users/' . $userId . '/entities',
'basicAuth' => ['user' => $GLOBALS['user'], 'password' => $GLOBALS['password']],
'headers' => ['content-type:application/json'],
'method' => 'POST',
'body' => json_encode(['entityId' => $entityId])
]);
if ($curlResponse['code'] != 200) {
writeLog(['message' => "[ERROR] Add entity to user failed : {$curlResponse['response']['errors']}"]);
}
}
else{
writeLog(['message' => "[ERROR] Add entity to user failed : {Entity not found}"]);
}
}
Remplacer le code ligne 342 a 366 par :
userAddEntity($maarchUsersLogin[$user['user_id']]['id'], $user);
Remplacer le code ligne 388 a 399 par :
userAddEntity($curlResponse['response']['id'], $user);
Mis à jour par Support Maarch il y a plus de 3 ans
- Statut changé de A qualifier à A traiter
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Statut changé de A traiter à R&D - A étudier
- Assigné à changé de EDI PO à Florian AZIZIAN
Mis à jour par Florian AZIZIAN il y a plus de 3 ans
- Statut changé de R&D - A étudier à Complément d'Informations
- Assigné à changé de Florian AZIZIAN à Ludovic ARAUJO
Effectivement , après analyse du code, defaultEntity est utilisé seulement si l'entité du ldap n'existe pas dans MaarchCourrier
Donc si l'utilisateur n'a pas d'entité dans le ldap, on ne lui ajoute pas l'entité par défaut dans Courrier (20.10, 21.03, develop)
La demande initiale était : mettre une entité par défaut si l'utilisateur n'a pas d'entité de rattachement ou une entité non existante
Après avoir testé la proposition de code, on pourrait donc intégrer le code dans l'application.
Question : Est-ce que c'est normal que l'utilisateur n'ait pas d'entité dans le ldap ?
Mis à jour par Ludovic ARAUJO il y a plus de 3 ans
- Assigné à
Ludovic ARAUJOsupprimé
L'utilisateur a une entité mais elle n'existe pas encore dans maarch, le client a donc une entité par defaut pour ajouté l'utilisateur dans tout les cas.
Mis à jour par Florian AZIZIAN il y a plus de 3 ans
- Statut changé de Complément d'Informations à R&D - A planifier
Si l'utilisateur a une entité dans le ldap (et qui n'existe pas dans Maarch), le code initial aurait bien dû positionner l'entité par défaut.
A la vu du code, je ne vois pas de problème.
Il faut que l'on teste sur notre serveur ldap.
Mis à jour par Florian AZIZIAN il y a plus de 3 ans
- Lié à Fonctionnalité #13273: Batch synchronisation LDAP ajouté
Mis à jour par Florian AZIZIAN il y a plus de 3 ans
- Projet changé de 298 à 299
- Statut changé de R&D - A planifier à R&D - En cours
- Version cible changé de Inscription Backlog Courrier à Courrier Develop
Mis à jour par Guillaume HEURTIER il y a plus de 3 ans
- Assigné à mis à Guillaume HEURTIER
Mis à jour par Guillaume HEURTIER il y a plus de 3 ans
- Statut changé de R&D - En cours à R&D - Terminé
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Assigné à changé de Guillaume HEURTIER à Ludovic ARAUJO
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Projet changé de 298 à Backlog Courrier
- Version cible changé de Courrier Develop à Develop
Mis à jour par Emmanuel DILLARD il y a presque 2 ans
- Version cible changé de Develop à 2301
MAJ version cible Develop->2301