Autoriser conditionnellement l'inscription de nouveaux utilisateurs

Bonjour,
Je suis nouveau dans l’administration et le développement de Discourse, et je ne parle pas encore Ruby (mais je suis tout à fait disposé à apprendre). Ma première tâche consistait à installer une instance de Discourse, ce que j’ai réussi à faire sur Digital Ocean en utilisant l’image Docker officielle. Jusqu’ici, tout va bien — un grand merci aux personnes qui ont rendu cela si simple !

Ma prochaine tâche est plus délicate (pour moi). Je me suis porté volontaire pour mettre en place ce Discourse au profit d’une organisation à but non lucratif qui souhaite restreindre l’inscription et la participation aux seuls membres de ladite organisation. Je dois donc modifier, intégrer (ou peut-être remplacer ?) le processus de création de nouveaux utilisateurs afin de vérifier programmatiquement si l’adresse e-mail soumise correspond à celle d’un membre actuel de l’organisation, et si la date d’expiration de son adhésion est dans le futur.

L’organisation utilise NeonCRM, qui propose une API facilitant grandement cette vérification. Discourse, si je comprends bien, offre également une API permettant d’effectuer toute action réalisable manuellement. Il est donc plus que théoriquement possible de réaliser ce que je souhaite, n’est-ce pas ? La question est de savoir quelle est la meilleure approche.

Par exemple, si Discourse permet d’écrire un écouteur d’événements (ou un plugin ?) qui observe l’inscription d’un nouvel utilisateur, exécute cette logique de vérification, et peut annuler l’inscription avec un message informatif que je pourrais afficher (« Désolé, vous devez être membre de l’Association XYZ »), ce serait idéal.

Sinon, je pourrais imaginer créer ma propre page d’inscription utilisateur (en PHP, un langage que je maîtrise bien) qui utiliserait les deux API. Mais dans ce cas, je devrais modifier ma configuration Discourse pour que la page d’inscription redirige l’utilisateur vers ma version personnalisée.

J’aimerais donc beaucoup entendre vos suggestions sur la stratégie globale à adopter, ainsi que sur les ressources à consulter pour commencer à apprendre comment réaliser cela.

Merci beaucoup !

2 « J'aime »

Vous pouvez limiter les inscriptions par domaine de messagerie. Si tous vos utilisateurs utilisent le même domaine, personne en dehors de cette organisation ne pourra rejoindre. Dans les paramètres, recherchez « domaines de messagerie autorisés ».

Une liste de domaines de messagerie séparés par des barres verticales avec lesquels les utilisateurs DOIVENT créer un compte. AVERTISSEMENT : Les utilisateurs dont le domaine de messagerie ne figure pas dans la liste ne seront pas autorisés !

2 « J'aime »

Ah, cela pourrait fonctionner si l’ensemble des domaines possibles était limité à une taille raisonnable, mais dans ce cas, les adresses e-mail sont arbitraires. Merci pour la suggestion.

2 « J'aime »

Cela aide-t-il ?

@Jonathan5 merci pour la suggestion. J’ai parcouru ce fil et, franchement, cela ressemble à un cauchemar. Qui plus est, les membres de cette association n’utilisent pas NeonCRM directement pour se connecter à quoi que ce soit ; seuls les gestionnaires de l’association le font. C’est compliqué.

J’ai eu une autre idée. J’ai configuré Discourse en mode « sur invitation uniquement ». Supposons que je maintienne cette configuration, mais que je modifie le texte de la page de connexion pour indiquer quelque chose comme : « Veuillez vous rendre sur my.example.org/discourse-invitation pour demander une invitation. » À cette URL, j’aurais mon script qui utilise l’API NeonCRM pour vérifier l’adhésion de l’utilisateur potentiel, utilise l’API Discourse pour créer le compte utilisateur (si la vérification réussit), et lui envoie l’invitation. Je pense que mon raisonnement est solide. Ai-je raison ?