Création d'utilisateurs sans mot de passe via API

Je migre mon forum de support vers Discourse depuis un système de helpdesk (YouTrack).
Je souhaite utiliser l’API pour effectuer les opérations suivantes :

  1. Récupérer les utilisateurs (nom, nom d’utilisateur, e-mail) depuis YouTrack et créer des utilisateurs équivalents dans Discourse. Ne pas définir de mots de passe pour eux !
  2. Envoyer une invitation à tous ces utilisateurs pour qu’ils s’inscrivent sur Discourse, en utilisant les mêmes noms d’utilisateur et e-mails (afin qu’ils puissent créer de nouveaux mots de passe).
  3. Récupérer certains sujets, pièces jointes et commentaires depuis YouTrack et les recréer dans Discourse.
    Pour cela, il faudra que ces mêmes utilisateurs existent dans Discourse afin qu’ils puissent être désignés comme auteurs des sujets et des commentaires. Cela doit être fait, que ces utilisateurs aient ou non complété leur inscription sur Discourse après avoir reçu l’invitation.

Problèmes :
a) La documentation de l’API indique que le champ « password » est obligatoire lors de la création d’un utilisateur. Comment contourner cette contrainte ?
b) Quel doit être l’état d’un tel utilisateur (créé via l’API, possédant déjà certains sujets à son nom, mais non confirmé et sans mot de passe défini) ?

1 « J'aime »

Je créerais les utilisateurs, les catégories, les sujets et les messages à l’aide d’un script d’importation plutôt que de l’API.

Je ne suis pas tout à fait sûr de la meilleure façon d’envoyer un e-mail à chaque utilisateur, mais une solution consisterait à laisser le script d’importation activer les utilisateurs et leur permettre de recevoir un message récapitulatif par e-mail, en veillant à ce que cet e-mail récapitulatif contienne les instructions pour accéder au nouveau forum.

2 « J'aime »

Avec quoi un tel script fonctionnerait-il ? Directement avec la base de données ?

Jetez un œil aux scripts d’importation dans scripts/import.

1 « J'aime »

J’ai essayé d’utiliser ce script de votre part, qui semble faire l’affaire, mais je continue de recevoir un message d’erreur :

 ./create-user 'Test User Four' me@[domain] test4 41 default
Création de l'utilisateur : test4 utilisateur test4 créé. . . Ajout au groupe 41. . . {"errors":["Vous avez fourni des paramètres invalides à la demande : usernames"],"error_type":"invalid_parameters"}

Je n’arrive pas à comprendre ce que j’ai fait de travers. De plus, est-il possible de ne pas définir le groupe et le mot de passe ici ?

Je ne suis pas vraiment sûr, mais il semble que vous ayez un numéro de groupe invalide et que cela génère une erreur ? Si l’ajout de l’utilisateur fonctionne, cela suggère qu’aucun groupe n’est défini par défaut. :wink:

Vous pourriez modifier le script pour qu’il ne définisse pas de mot de passe, je pense, mais définir un mot de passe aléatoire que personne ne connaît revient pratiquement à n’en avoir aucun.

Si vous avez besoin de personnalisation et que vous disposez d’un budget, je peux probablement le faire plus tard aujourd’hui.

Le numéro de groupe est correct, je l’ai extrait de /groups.json. Quoi qu’il en soit, mon objectif actuel est de trouver la solution avec les outils disponibles. Merci tout de même pour votre offre et votre aide !

1 « J'aime »

Hmm. Peut-être que cette API a changé. Je pense qu’elle accepte désormais un nom de groupe. N’hésitez pas à soumettre une PR si vous trouvez une solution.

J’ai toute une série de choses à traiter avant de pouvoir examiner cela de plus près.

Non. Si j’utilise le nom de groupe au lieu de l’ID, je reçois
{"status":404,"error":"Not Found"}

C’est aussi étrange que, bien que le message d’erreur apparaisse après user test6 created. . . Adding to group, l’utilisateur n’est en fait pas créé.

Hmm. Bon, le script doit définitivement être mis à jour pour envoyer l’utilisateur et la clé API dans un en-tête plutôt que dans l’URL. Bien que je sois presque certain que cela fonctionnait il y a deux ans, on dirait qu’il a été écrit par quelqu’un ayant deux ans d’expérience de moins que moi aujourd’hui. :wink:

Il ne vérifie pas les erreurs pour voir si l’utilisateur est réellement créé, donc c’est quelque chose que je modifierais si je devais y travailler.

Il semble que si vous n’avez aucun groupe, il omettra d’essayer d’ajouter l’utilisateur au groupe.

1 « J'aime »

Bonjour Dmitry @dm.linov !

J’ai trouvé ce sujet en cherchant une approche pour passer de Confluence à YouTrack et Discourse.

Pourriez-vous partager vos principaux points concernant le passage de YouTrack à Discourse ? La raison était-elle liée aux coûts, aux performances ou à des problèmes de recherche ?

Bonjour Ivan,

Les deux raisons sont vraies. Nous souhaitions offrir un support à nos clients sur un forum ouvert, afin que le monde entier puisse voir à quel point nous sommes excellents :slight_smile: Et YouTrack n’était pas un bon outil pour cela pour plusieurs raisons, dont le fait qu’il facture par utilisateur.

Notre configuration actuelle est la suivante :

  • Discourse pour le support, les demandes de fonctionnalités et les discussions. Les formulaires « Contactez-nous » de nos sites web y aboutissent également (de nouveaux sujets et des utilisateurs « en attente » sont créés automatiquement via l’API)
  • YouTrack pour le développement : tâches, bogues et autres problèmes
  • Confluence pour la documentation générale. Certains articles décrivant des cas d’utilisation spécifiques sont également publiés sur Discourse (manuellement)

Nous avons également essayé d’utiliser Discourse comme blog d’entreprise, mais nous avons ensuite préféré Hashnode.

3 « J'aime »

Merci, Dmitry. Cette expérience nous sera utile.

Nous sommes sur le point de migrer la documentation depuis Confluence. Celui-ci possède une fonction de recherche faible et des frais élevés. YouTrack dispose d’une fonctionnalité de base de connaissances avec support du Markdown. De plus, l’importation y est simple et la fonction de recherche est acceptable. YouTrack est notre système de suivi des bugs, et nous le conserverons.

Si vous pouvez confirmer que la base de connaissances de YT est lente en production, nous pourrions envisager de ne pas l’utiliser.

Discourse est utilisé comme système de support de troisième niveau. Sa fonction principale est de conserver les solutions des clients et de partager les meilleures pratiques. Malheureusement, l’utilisation de Discourse par les clients est difficile. En effet, l’équipe du support client utilise un service desk. De plus, il est trop complexe de créer des centaines de catégories privées pour chaque client.

Quoi qu’il en soit, Discourse est excellent dans l’ensemble :slight_smile: .

1 « J'aime »

À ma connaissance, nous n’avons jamais utilisé la base de connaissances YT, donc je ne peux rien dire à ce sujet.

En ce qui concerne Confluence, nous recherchons également une alternative en ce moment :slight_smile: mais sans nous presser.

3 « J'aime »

Avez-vous déjà consulté Discourse pour les équipes ?

3 « J'aime »

@blake Pas encore, je vais m’en occuper, merci !

1 « J'aime »

Cela pourrait valoir la peine d’envisager d’utiliser Discourse for Teams en combinaison avec Google Currents. :speech_balloon:

2 « J'aime »