Je suis l’administrateur d’un forum d’organisation avec plusieurs niveaux d’adhésion, qui correspondent à une adhésion à un groupe personnalisé sur le forum. Actuellement, cela nécessite un processus manuel pour chaque nouveau membre où je reçois l’adresse e-mail du nouveau membre, je vérifie si elle est associée à un compte utilisateur, puis je l’ajoute au groupe personnalisé.
Ce que j’aimerais, c’est un script qui prendrait une liste d’adresses e-mail, et s’il y a un utilisateur avec cette adresse, l’ajouterait à un groupe, et sinon, enverrait une invitation avec la permission du groupe déjà ajoutée. Comment écrirais-je un tel script ?
Merci !
EDIT :
Exemple ci-dessous :
J’ai ces trois adresses e-mail : alice@example.com - Appartient à un membre du forum qui n’est pas membre du groupe SomeGroup bob@foo.org - Appartient à un membre du forum qui est membre de SomeGroup carol@bar.edu - N’appartient pas à un membre du forum.
J’aimerais ajouter l’utilisateur associé à alice@example.com à SomeGroup (et envoyer un message de bienvenue), ne rien faire pour l’utilisateur bob@foo.org, et envoyer une invitation au forum avec le drapeau d’inscription au groupe à carol@bar.edu.
Vous pouvez configurer le groupe de sorte que si un utilisateur s’inscrit avec un certain domaine de messagerie (le @example.com), il soit automatiquement ajouté à un groupe.
Allez dans l’onglet de gestion du groupe, puis dans la section Automatique ajoutez le domaine.
Si vous envoyez un lien d’invitation, il fonctionnera également pour les membres existants. Vous pouvez même les diriger vers un sujet particulier sur lequel ils atterriront à leur arrivée, ce qui peut être utile pour l’inscription de groupe ou les événements.
Je ne savais pas. Je vais regarder le wiki et il disait seulement lors de la création du compte. Pouvez-vous corriger cela puisque ce n’est pas un wiki ? (Invite users to a group)
Laissez-moi vous donner un exemple, car ma question n’a peut-être pas été claire.
J’ai ces trois adresses e-mail : alice@example.com - Appartient à un membre du forum qui n’est pas membre du groupe SomeGroup bob@foo.org - Appartient à un membre du forum qui est membre de SomeGroup carol@bar.edu - N’appartient pas à un membre du forum.
J’aimerais que le script ajoute l’utilisateur associé à alice@example.com à SomeGroup (et éventuellement envoie un message de bienvenue), ne fasse rien pour l’utilisateur bob@foo.org, et envoie une invitation avec le drapeau d’inscription au groupe à carol@bar.edu.
Plutôt que d’utiliser une liste d’adresses e-mail, il serait probablement plus judicieux d’utiliser l’API pour cela. Ainsi, lorsque l’utilisateur s’inscrit, vous devriez automatiquement l’inscrire au groupe en utilisant cette API : Discourse API Docs
Cela nécessite que l’utilisateur soit également déjà créé dans Discourse au moment où vous utilisez l’API. Cela pourrait nécessiter un peu plus de configuration, mais cela pourrait automatiser complètement le flux pour vous, afin que vous n’ayez pas à effectuer de téléchargements manuels d’adresses e-mail d’utilisateurs.
Le fait est que ce que j’ai en fait, c’est une liste d’adresses e-mail, pas des noms d’utilisateur. Mon organisation suit les niveaux d’adhésion des personnes par nom et par e-mail, et non par nom d’utilisateur du forum, car le forum n’est qu’une petite partie de l’organisation. Le coordinateur des membres m’envoie chaque semaine une liste de noms et d’e-mails pour les nouveaux membres. Ils peuvent ou non avoir déjà un compte sur le forum lorsque cela se produit, car nous avons une section publique sur le forum.
Cela ne semble pas fonctionner, en fait. Lorsque j’essaie d’envoyer un lien d’invitation, j’obtiens Il n’est pas nécessaire d’inviter example@gmail.com, ils ont déjà un compte !
Il est possible que je me sois embrouillé. Laissez-moi explorer et voir s’il existe un moyen de réaliser ce que vous souhaitez en utilisant les fonctionnalités existantes du forum.
Modification :
Je pense que c’est possible en utilisant l’option d’invitation en masse. Si vous avez un fichier CSV d’adresses e-mail, avec une deuxième colonne pour le(s) groupe(s) auquel vous souhaitez les ajouter, alors en passant ce fichier par l’outil d’invitation en masse, vous enverrez un e-mail d’invitation à toute personne n’ayant pas de compte, et ajouterez les membres existants au(x) groupe(s) que vous avez saisis dans la deuxième colonne. Cependant, le point manquant serait que cela ne génère pas de notification indiquant que vous avez été ajouté au groupe.
L’invitation en masse devrait fonctionner pour le moment, merci ! J’aimerais faire une demande de fonctionnalité pour ajouter un message aux membres existants lorsqu’ils obtiennent de nouvelles autorisations.
J’ai résolu ma confusion. Ce sont les liens qui font ce que je pensais, pas les e-mails. Donc, l’autre solution serait de créer un lien d’invitation (plutôt qu’un e-mail), puis de l’envoyer par e-mail à toutes les personnes de votre liste d’adresses e-mail. Les nouveaux membres seraient dirigés vers la page « créer un compte et accepter l’invitation » avant d’être ajoutés au groupe et envoyés au sujet (si vous avez ajouté ce critère), les utilisateurs existants déjà connectés seraient ajoutés au groupe et envoyés directement au sujet que vous leur avez indiqué, et les utilisateurs existants qui n’étaient pas connectés peuvent se connecter depuis la page « créer un compte et accepter l’invitation » (bien qu’il soit un peu ambigu de savoir si vous pouvez le faire, mais vous pourriez ajouter du texte supplémentaire à la page dans js.create_account.subheader_title pour ajouter un petit indice), puis être ajoutés au groupe et envoyés au sujet :
Cependant, cette méthode n’envoie pas non plus de notification indiquant qu’ils ont été ajoutés au groupe, mais vous avez la possibilité d’inclure une explication dans l’e-mail d’invitation initial, ce qui pourrait être utile ? Et « arriver au sujet » pourrait également être utilisé de la même manière qu’une page de destination.
Je ne sais pas si cela est utile, mais je suis content d’avoir trouvé la solution.