# Désactivation de l'exigence d'e-mail d'activation pour les utilisateurs invités

**URL:** <https://meta.discourse.org/t/disabling-activation-email-requirement-for-invited-users/152633>\
**Category:** Development\
**Created:** [Mai 25, 2020, 4:21 UTC](https://meta.discourse.org/t/disabling-activation-email-requirement-for-invited-users/152633 "2020-05-25T16:21:12Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![tkrunning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tkrunning/32/119481_2.png) [@tkrunning](https://meta.discourse.org/u/tkrunning)\
**Post date:** [Mai 25, 2020, 4:21 UTC](https://meta.discourse.org/t/disabling-activation-email-requirement-for-invited-users/152633/1 "2020-05-25T16:21:12Z")

</div>

Salut à tous, j’ai un cas d’usage qui n’est pas encore très bien pris en charge : je dois désactiver l’e-mail d’activation pour les utilisateurs invités — y compris _les utilisateurs invités via un **lien** _.

> [@Allow disabling activation email for invited users](https://meta.discourse.org/t/allow-disabling-activation-email-for-invited-users/88426):
>
> I’ve seen this [discussed briefly before](https://meta.discourse.org/t/disable-confirm-your-new-account-activation-email-for-invitees/68859), but I’d like to cast a vote for an option to turn off activation emails for users who were already invited. They already clicked the invitation link (which presumably was sent to their email), so there’s no need to ask them to confirm it again. I am aware that there might be cases where an invite link is generated and not sent via email, so perhaps it would be good to pass a variable to set activation as needed or not when a link is generated? What do …

Après avoir créé le sujet ci-dessus, cela a été [implémenté](https://github.com/discourse/discourse/commit/7977b09025751973f7ae1271f68aaab2716e01fa), mais uniquement pour les utilisateurs _invités par **e-mail** _.

Mon instance Discourse est réservée aux invités et j’envoie effectivement des liens d’invitation par e-mail, mais pas via les e-mails intégrés de Discourse. Je génère les liens d’invitation avec une requête `POST` vers `/invites/link` et les stocke dans une base de données externe, puis j’envoie ces liens aux utilisateurs. Ainsi, lorsque les utilisateurs cliquent sur le lien, ils ont déjà vérifié leur adresse e-mail, mais on leur demande de le faire à nouveau.

Je réalise que mon cas d’usage n’est pas particulièrement courant, alors j’ai pensé essayer de créer un plugin simple pour modifier les parties nécessaires de Discourse afin que cela fonctionne comme je le souhaite.

J’ai mis en place une structure de base et ajouté un paramètre du site (`no_activation_enabled`). Après avoir parcouru le dépôt principal, je pense que c’est peut-être ce fichier qu’il faut modifier :

> <https://github.com/discourse/discourse/blob/main/app/models/invite_redeemer.rb>

Je ne suis pas totalement sûr, mais je pense qu’en modifiant conditionnellement (si `SiteSetting.no_activation_enabled` est activé et si l’utilisateur a été invité par un membre du personnel, peut-être via `invite.invited_by.staff` ?) la valeur de `active` à `true` dans `user.attributes`, cela pourrait fonctionner :

```plaintext
    user.attributes = {
      email: invite.email,
      username: available_username,
      name: name || available_username,
      active: false,
      trust_level: SiteSetting.default_invitee_trust_level,
      ip_address: ip_address,
      registration_ip_address: ip_address
    }

```

Mais comment puis-je modifier cela depuis un plugin ? Est-ce même dans le champ d’action des plugins ? Ou peuvent-ils uniquement ajouter des fonctionnalités, sans les modifier ? Ou dois-je remplacer entièrement le fichier `invite_redeemer.rb` ?

J’ai terminé le tutoriel sur la création de plugins, ainsi que [ce guide](https://meta.discourse.org/t/how-to-start-building-stuff-for-discourse-if-youre-newbie-like-myself/45954), mais après des heures à essayer de fouiller dans la base de code, y compris d’autres plugins, j’ai l’impression de me frapper la tête contre un mur… Donc si quelqu’un a des pistes à me proposer, je lui serais extrêmement reconnaissant !

---

_[View the full topic](https://meta.discourse.org/t/disabling-activation-email-requirement-for-invited-users/152633)._
