2024-12-22 03:43:07 +04:00
export default ( { filter } , { services , env } ) => {
const checkEmailExists = async ( email , database ) => {
const user = await database ( 'directus_users' )
. select ( 'id' )
. where ( { email } )
. first ( )
return user !== undefined
}
filter ( 'users.create' , async ( input , { schema } , { database } ) => {
if ( ! services . MailService ) {
console . error ( 'Le service MailService est manquant.' )
return input
}
const adminEmail = env . EMAIL _NEW _USER
2024-12-22 03:57:22 +04:00
const directusURL = env . DIRECTUS _URL || 'http://0.0.0.0:8055'
2024-12-22 03:43:07 +04:00
if ( ! adminEmail ) {
console . error ( 'La variable EMAIL_NEW_USER est manquante.' )
return input
}
const emailExists = await checkEmailExists ( input . email , database )
if ( emailExists ) {
console . error ( 'L’ adresse e-mail est déjà utilisée.' )
return input
}
try {
const mailService = new services . MailService ( { schema } )
mailService . send ( {
to : adminEmail ,
subject : ` Nouvel utilisateur : ${ input . email } ` ,
2024-12-22 03:57:22 +04:00
text : ` Un nouvel utilisateur a été créé : \n Nom: ${ input . first _name || 'N/A' } Email: ${ input . email || 'N/A' } \n Pour valider => ${ directusURL } /admin/users ` ,
2024-12-22 03:43:07 +04:00
html : `
<p>Un nouvel utilisateur a été créé :</p>
<ul>
<li><strong>Nom:</strong> ${ input . first _name || 'N/A' } </li>
<li><strong>Email:</strong> ${ input . email || 'N/A' } </li>
</ul>
2024-12-22 03:57:22 +04:00
<p>Pour valider, <a href=" ${ directusURL } /admin/users" target="_blank"><strong>cliquez ici</strong></a> ou sur ce lien => <a href=" ${ directusURL } /admin/users" target="_blank"> ${ directusURL } /admin/users</a></p>
2024-12-22 03:43:07 +04:00
` ,
} )
console . log ( 'Email envoyé avec succès à' , adminEmail )
} catch ( err ) {
console . error ( "Erreur lors de l’ envoi de l’ e-mail via MailService:" , err )
}
return input
} )
}