Bug #3730
ferméPopup Bad request lors de la modification de la liste des utlisateurs d'un groupe du domaine mixte
Description
Utilisateur et groupes / domaine mixte : > modifier les utilisateurs : "bad request" à l'ouverture de la page
Mis à jour par Nicolas Eysseric il y a environ 12 ans
- Statut changé de New à Assigned
- Assigné à mis à Miguel Moquillon
- Version cible mis à Version 5.10.2
Reproduit sur l'intranoo avec IE7 et IE8 lors de la modification des utilisateurs d'un groupe du domaine mixte.
Pas de problème sous IE9, FF et Chrome...
Mis à jour par Nicolas Eysseric il y a environ 12 ans
- Sujet changé de Popup Bad request lors de la modification de la liste des utlisateurs d'un groupe du comaine mixte à Popup Bad request lors de la modification de la liste des utlisateurs d'un groupe du domaine mixte
Mis à jour par Nicolas Eysseric il y a environ 12 ans
Une erreur 400 se produit lors de l'appel d'un service REST avec l'URL suivante :
/silverpeas/services/profile/users/function(elt%20/*,%20from*/)%20%20%7B%20%20%20%20var%20len%20=%20this.length%20%3E%3E%3E%200;%20%20%20%20var%20from%20=%20Number(arguments[1])%20%7C%7C%200;%20%20%20%20from%20=%20(from%20%3C%200)%20%20%20%20%20%20%20%20%20?%20Math.ceil(from)%20%20%20%20%20%20%20%20%20:%20Math.floor(from);%20%20%20%20if%20(from%20<%200)%20%20%20%20%20%20from%20+=%20len;%20%20%20%20for%20(;%20from%20<%20len;%20from++)%20%20%20%20{%20%20%20%20%20%20if%20(from%20in%20this%20&&%20%20%20%20%20%20%20%20%20%20this[from]%20===%20elt)%20%20%20%20%20%20%20%20return%20from;%20%20%20%20}%20%20%20%20return%20-1;%20%20}&_=1348561228294 HTTP/1.1
Ce problème se produit aussi bien sur le domaine mixte que sur les autres domaines.
Mis à jour par Miguel Moquillon il y a environ 12 ans
- Statut changé de Assigned à In progress...
Mis à jour par Miguel Moquillon il y a environ 12 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Le problème vient d'un bogue des IE < 9 avec le javascript. Les tableaux dans les IE < 9 ne sont pas conformes au standard ECMA, en l’occurrence, il n'y a pas d'opération indexOf
. Pour palier à ce manque, lorsque le navigateur détecté est IE < 9, la méthode indexOf
est alors ajoutée au prototype objet des tableaux.
Or, dans certaines circonstances qui nous échappent, lorsque l'on parcours un tableau via le mot-clé in
, la méthode ajoutée au prototype peut être considérée comme un élément du tableau (ce mot-clé sert aussi à parcourir les propriétés d'un objet) ! C'est pourquoi, lorsqu'il y a des utilisateurs présélectionnés dans le user panel, on parcours le tableau de leurs identifiant via le mot-clé in
en vue de leur affichage et ... à la fin on tombe sur la méthode ajoutée indexOf
. Comme on attend un identifiant, avec lequel l'URL d'accès au profil de l'utilisateur est construit, IE (c'est beau) convertit alors la méthode en chaîne de caractères ; c'est-à-dire qu'il sérialise le code de la méthode en string !!!! Et voilà le code de la méthode présent dans une URL !
Un palliatif à ce bogue dans l'interpréteur javascript de IE a été de remplacer le parcours de tableaux dans le user panel avec le mot-clé in
par la vieille façon à-la C.
Mis à jour par Miguel Moquillon il y a environ 12 ans
Je rajouterai aussi ceci : dans la mesure du possible, je recommande fortement aux utilisateurs sous Windows de changer de navigateur. S'ils ne peuvent passer à un navigateur moderne et plus fiable comme Firefox ou Chrome, alors passez à la dernier mouture d'IE (actuellement la 9).
Mis à jour par Nicolas Eysseric il y a environ 12 ans
- Statut changé de Resolved à Closed
OK. Validé et intégré.