Confirmation de creation par email avant création effective

Bonjour à tous,

Me voila de retour après une période d’absence sur ce forum, j’aurais bien besoin de quelques conseils avisés :slightly_smiling_face:
Mon besoin est le suivant :
Lors de la création d’un nouvel item de type « Event », je veux envoyer un mail récapitulatif à une adresse email « admin », qui permettra de valider (ou non), la publication de l’événement.
J’ai réfléchi à plusieurs options mais, n’étant pas du tout un expert Directus, j’aimerais bien un avis tiers.
Une solution qui me semble être pas mal serait de créer un attribut ‹ isValidate › sur l’Event, par defaut à false. Créer ensuite un endpoint qui enverrait le mail, appelé par un webhook déclenché par la création d’un evenement. Et enfin un endpoint qui serait appelé au clique dans le mail sur le bouton de validation (ou non), qui passerait l’attribut ‹ isValidate › à la valeur voulue.
Seulement, je ne suis pas sûr que ça soit la solution la plus optimisée, et surtout, ça m’obligerait à filtrer dans mon appli, les évènements ayant la propriété isValidate à true, et les filtres étant modifiable à la volée, on aurait un souci de sécurité.

Je m’excuse par avance si le sujet a déjà été ouvert sur le forum, je n’ai pas trouvé… Mais je doute que je sois le seul à avoir eu le problème :slight_smile:

Merci d’avance pour votre aide !!
Mathis

En jouant avec les permissions, on doit pouvoir filtrer par défaut sur la propriété isValid à true. Reste à savoir si le reste du fonctionnement que j’ai imaginé semble cohérent ou si il faut que je revois tout ca :slight_smile:

Bonjour,

De mon avis, c’est tout à fait dans les cordes de Flows et que ce soit directus qui gère. Le mieux pour ce genre d’events, c’est que ce soit géré par le back.

1 « J'aime »

Bonjour @Mrt1 ,
Merci pour ta réponse. J’ai fouillé un petit peu dans les possibilités des Flows et ai assez rapidement réussi à envoyer un mail. Pour ce que est de la validation de la création de mon « Event » via le mail, je ne vois pas trop comment passer par les flows, un nouvel endpoint me parait plus approprié, est ce que tu me confirmes ou bien j’ai loupé quelque chose sur les flows ?
Merci par avance

Si j’ai bien compris, tu peux passer par un endpoint effectivement, avec une moulinette ‹ Flows ›.
tu envoies le mails qui contient un lien/token (avec Flows), quand on cliques sur le lien dans le mail, ça envoie vers endpoint qui modifie alors la DB au niveau de directus ou qui déclenche un événement et ça peut aussi se faire avec un Flows.

Perso, je fais ça pour valider une adresse mail pour ma webapp. Lors de l’inscription, ça envoie un mail avec un lien qui contient un token. Quand on cliques sur le lien reçu, ça retrouve l’utilisateur via son mail d’inscription et un flows passe alors l’utilisateur en ‹ utilisateur/mail validé ›. Je dois avoir 2 flows pour gérer cet aller retour.

D’accord merci beaucoup,
Si j’ai bien compris, le flows qui change le statut de ton utilisateur, est déclenché grâce à un trigger de type webhook ? Cela créer une API /flows/trigger/trigger-uid et lors de l’appel de celle ci, tu lances tes opérations de validation du token, et changement de statut de ton utilisateur, c’est bien cela ?

Oui tout à fait.

Directus a implémenté cette fonction depuis peu d’ailleurs, ce qui rend la chose plus facile.

Merci beaucoup pour ton aide, je vais devoir monter de version mon directus et je vais creuser dans cette direction :slight_smile:

il faut la version 10.6.0 minimum. Mais je te conseille de prendre les dernières versions, vu que cela corrige des failles de sécurité.

Yes je vais essayer de passer à la dernière version mais je suis encore en 9.26 donc la marche va etre haute.
npm update
et
npx directus database migrate:latest
ne semblent pas suffire

t’as des erreurs? npm est bien à jour?

Non tout se passe bien mais impossible de monter à une version supérieur, la cli me dit etre up to date.J’ai manuellement monté node et npm, tenté un npm install directus@10, ca a pété et depuis cj’ai des erreurs.


je vais tenter de restaurer une backup

Je vais pas voir le temps de regarder en détails, mais j’ai vu qu’il y avait des trucs dans le Discord de Directus sur ce sujet…

Merci pour le tuyau je vais aller voir

En montant petit à petit les versions et deux trois packages a installer je m’en suis sorti, je vais pouvoir me lancer dans JWT

1 « J'aime »

Bizarre… t’as regardé les logs?

[Edit] Par contre, tu feras attention, on voit tes adresses IP de dev et tout sur les screenshots…

Problème résolu ! :+1:

2 « J'aime »

Rien d’anormal dans mes logs, j’ai désactivé l’utilisation du cache pour les flows sans succès. Je suis tombé sur ce sujet sur github, ca semble correspondre à mon souci, mais la version concernée est ancienne, bizarre que ca ne soit pas encore patché …

Je vais continuer de chercher

Correction, je vois dans mes logs que le webhook qui sert de trigger au flow est appelé deux fois, étrange. Je vais rajouter une condition avant l’update de mon Event pour vérifié qu’il n’est pas déja validé.