Bug #3730
fermé
Popup Bad request lors de la modification de la liste des utlisateurs d'un groupe du domaine mixte
Ajouté par Ludovic Bertin il y a environ 12 ans.
Mis à jour il y a environ 12 ans.
Navigateur:
Internet Explorer 7
Votre version de Silverpeas:
5.10
Système d'exploitation:
Windows XP
Votre base de données:
Toutes
Description
Utilisateur et groupes / domaine mixte : > modifier les utilisateurs : "bad request" à l'ouverture de la page
- 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...
- 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
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.
- Statut changé de Assigned à In progress...
- 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.
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).
- Statut changé de Resolved à Closed
Formats disponibles : Atom
PDF