]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/user.ts
Add server API to abuse messages
[github/Chocobozzz/PeerTube.git] / server / lib / user.ts
index c45438d95b0784ec96952df92a2974f5ae908be9..6e7a738eea44ca9f0ee8b6476cb9b95eeeaa572f 100644 (file)
@@ -1,8 +1,8 @@
-import * as uuidv4 from 'uuid/v4'
+import { v4 as uuidv4 } from 'uuid'
 import { ActivityPubActorType } from '../../shared/models/activitypub'
 import { SERVER_ACTOR_NAME, WEBSERVER } from '../initializers/constants'
 import { AccountModel } from '../models/account/account'
-import { buildActorInstance, getAccountActivityPubUrl, setAsyncActorKeys } from './activitypub'
+import { buildActorInstance, setAsyncActorKeys } from './activitypub/actor'
 import { createLocalVideoChannel } from './video-channel'
 import { ActorModel } from '../models/activitypub/actor'
 import { UserNotificationSettingModel } from '../models/account/user-notification-setting'
@@ -12,15 +12,16 @@ import { sequelizeTypescript } from '../initializers/database'
 import { Transaction } from 'sequelize/types'
 import { Redis } from './redis'
 import { Emailer } from './emailer'
-import { MAccountDefault, MActorDefault, MChannelActor } from '../typings/models'
-import { MUser, MUserDefault, MUserId } from '../typings/models/user'
+import { MAccountDefault, MActorDefault, MChannelActor } from '../types/models'
+import { MUser, MUserDefault, MUserId } from '../types/models/user'
+import { getAccountActivityPubUrl } from './activitypub/url'
 
 type ChannelNames = { name: string, displayName: string }
 
 async function createUserAccountAndChannelAndPlaylist (parameters: {
-  userToCreate: MUser,
-  userDisplayName?: string,
-  channelNames?: ChannelNames,
+  userToCreate: MUser
+  userDisplayName?: string
+  channelNames?: ChannelNames
   validateUser?: boolean
 }): Promise<{ user: MUserDefault, account: MAccountDefault, videoChannel: MChannelActor }> {
   const { userToCreate, userDisplayName, channelNames, validateUser = true } = parameters
@@ -63,11 +64,11 @@ async function createUserAccountAndChannelAndPlaylist (parameters: {
 }
 
 async function createLocalAccountWithoutKeys (parameters: {
-  name: string,
-  displayName?: string,
-  userId: number | null,
-  applicationId: number | null,
-  t: Transaction | undefined,
+  name: string
+  displayName?: string
+  userId: number | null
+  applicationId: number | null
+  t: Transaction | undefined
   type?: ActivityPubActorType
 }) {
   const { name, displayName, userId, applicationId, t, type = 'Person' } = parameters
@@ -110,8 +111,9 @@ async function sendVerifyUserEmail (user: MUser, isPendingEmail = false) {
   if (isPendingEmail) url += '&isPendingEmail=true'
 
   const email = isPendingEmail ? user.pendingEmail : user.email
+  const username = user.username
 
-  await Emailer.Instance.addVerifyEmailJob(email, url)
+  await Emailer.Instance.addVerifyEmailJob(username, email, url)
 }
 
 // ---------------------------------------------------------------------------
@@ -132,7 +134,7 @@ function createDefaultUserNotificationSettings (user: MUserId, t: Transaction |
     newCommentOnMyVideo: UserNotificationSettingValue.WEB,
     myVideoImportFinished: UserNotificationSettingValue.WEB,
     myVideoPublished: UserNotificationSettingValue.WEB,
-    videoAbuseAsModerator: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL,
+    abuseAsModerator: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL,
     videoAutoBlacklistAsModerator: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL,
     blacklistOnMyVideo: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL,
     newUserRegistration: UserNotificationSettingValue.WEB,