Zammad: Importation OTRS après un problème de capitalisation d'import LDAP

Créé le 23 nov. 2017  ·  8Commentaires  ·  Source: zammad/zammad

Infos:

  • Version utilisée de Zammad: zammad-2.1.0
  • Source d'installation de Zammad utilisée: package rpm
  • Système d'exploitation: CentOS 7
  • Navigateur + version:

Comportement attendu:

Les utilisateurs d'une importation OTRS doivent être fusionnés avec une importation LDAP précédente.

Comportement réel:

Les utilisateurs semblent être partiellement mis à jour, mais pas tous, en particulier, il semble que l'importation LDAP convertit tout en minuscules, alors que l'importation OTRS conserve la connexion telle quelle.

Nous pouvons voir que les utilisateurs avec userPrincipalName tels que "Givenname. [email protected] " sont créés, alors que "givenname. [email protected] " est mis à jour. L'utilisateur OTRS dans le premier est cependant toujours créé avec une connexion en minuscules.

Je peux également voir que dans le premier cas, il y a un numéro à 3 chiffres ajouté à la connexion, tel que

OTRS: [email protected] -> zammad: givenname. [email protected]

Ce comportement est le même pour tous les utilisateurs.

Étapes pour reproduire le comportement:

  • Utilisez un répertoire avec quelques utilisateurs comme Givenname. [email protected] et certains aiment givenname. [email protected]
  • importez d'abord les utilisateurs LDAP (dans notre cas avec un ordre modifié de "samaccountname" et "userprincipalname" dans "lib / ldap / user.rb: 61"
  • puis importez les tickets et les utilisateurs depuis OTRS comme décrit dans la documentation.
  • vérifiez les fichiers journaux, les utilisateurs avec Givenname. [email protected] sont comme ça

_thread # -: ajouter User.find_by (login: [email protected]) _

les utilisateurs avec toutes les minuscules sont comme ça

_thread # -: mettre à jour User.find_by (login: [email protected]) _

lorsque je recherche le premier utilisateur dans zammad en utilisant

_User.find_by (e-mail: '[email protected]') _

je ne trouve pas l'utilisateur, si je recherche en minuscules

_User.find_by (e-mail: '[email protected]') _

je le trouve, mais la connexion est comme ça

login: "ggggg. [email protected] "

bug import verified

Commentaire le plus utile

@thorsteneckel donc plus de minitests et tous les nouveaux tests seraient rspec?

Tous les 8 commentaires

Peut-être que j'ai résolu le problème, (du moins pour moi)

J'ai changé 2 fichiers dans lib / import / otrs

user.rb
customer_user.rb

dans chacun des fichiers j'ai ajouté ceci

    _mapped[:login].downcase!_

en dessous de la ligne 70. (strictement pas nécessaire dans le user.rb je pense, mais je ne suis pas un développeur)

Cela ne devrait pas être un problème avec les installations soutenues par LDAP, avec d'autres backends cela pourrait signifier que l'utilisateur doit se connecter en tant que "donald duck" au lieu de "Donald Duck" si je vois cela correctement.

donc pour l'instant c'est plus une solution sale, mais peut-être que quelqu'un avec plus de compétences en développement peut améliorer cela?

Salut @smalchow - Merci pour votre analyse complète du problème. En fait, Zammad (essaie comme nous pouvons le voir) réduit tous les identifiants (comme par exemple l'e-mail) pour éviter exactement ce problème. Votre solution est donc correcte. Il s'agit d'une solution de contournement pour les bases de données sensibles à la casse pour éviter les requêtes personnalisées / inopérantes.

Ce serait formidable si vous pouviez créer une pull request pour cela!

Ahhrrg .... Cela m'a déjà mis sur écoute il y a 7 ans: D
https://bugs.otrs.org/show_bug.cgi?id=4732

OK ne t'inquiète pas. j'ai compris. astuces. :)

@thorsteneckel donc plus de minitests et tous les nouveaux tests seraient rspec?

Oui 🎉

Correction grâce à la pull request # 1677 par @muhammadn 🚀

Cette page vous a été utile?
0 / 5 - 0 notes