]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/emailer.ts
add user account email verificiation (#977)
[github/Chocobozzz/PeerTube.git] / server / lib / emailer.ts
index a1212878fa3acf31efe9d5ed2b53d769963be75e..9327792fb6f8a731e10e252f2325218eff24dfdd 100644 (file)
@@ -7,7 +7,7 @@ import { UserModel } from '../models/account/user'
 import { VideoModel } from '../models/video/video'
 import { JobQueue } from './job-queue'
 import { EmailPayload } from './job-queue/handlers/email'
-import { readFileSync } from 'fs'
+import { readFileSync } from 'fs-extra'
 
 class Emailer {
 
@@ -89,6 +89,23 @@ class Emailer {
     return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
   }
 
+  addVerifyEmailJob (to: string, verifyEmailUrl: string) {
+    const text = `Welcome to PeerTube,\n\n` +
+      `To start using PeerTube on ${CONFIG.WEBSERVER.HOST} you must  verify your email! ` +
+      `Please follow this link to verify this email belongs to you: ${verifyEmailUrl}\n\n` +
+      `If you are not the person who initiated this request, please ignore this email.\n\n` +
+      `Cheers,\n` +
+      `PeerTube.`
+
+    const emailPayload: EmailPayload = {
+      to: [ to ],
+      subject: 'Verify your PeerTube email',
+      text
+    }
+
+    return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
+  }
+
   async addVideoAbuseReportJob (videoId: number) {
     const video = await VideoModel.load(videoId)
     if (!video) throw new Error('Unknown Video id during Abuse report.')
@@ -138,6 +155,8 @@ class Emailer {
   async addVideoUnblacklistReportJob (videoId: number) {
     const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId)
     if (!video) throw new Error('Unknown Video id during Blacklist report.')
+    // It's not our user
+    if (video.remote === true) return
 
     const user = await UserModel.loadById(video.VideoChannel.Account.userId)