X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fusers%2Fme.ts;h=a078334fec4fd3309907ea35be08716e452f31b2;hb=c1340a6ac35f924161e6ec2a1d728e20c89e55c8;hp=ddb239e7bdab4d2083ee1b40d35be94bf9004946;hpb=97567dd81f508dd6295ac4d73d849aa2ce0a6549;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/users/me.ts b/server/controllers/api/users/me.ts index ddb239e7b..a078334fe 100644 --- a/server/controllers/api/users/me.ts +++ b/server/controllers/api/users/me.ts @@ -28,6 +28,7 @@ import { VideoImportModel } from '../../../models/video/video-import' import { AccountModel } from '../../../models/account/account' import { CONFIG } from '../../../initializers/config' import { sequelizeTypescript } from '../../../initializers/database' +import { sendVerifyUserEmail } from '../../../lib/user' const auditLogger = auditLoggerFactory('users-me') @@ -171,16 +172,26 @@ async function deleteMe (req: express.Request, res: express.Response) { async function updateMe (req: express.Request, res: express.Response) { const body: UserUpdateMe = req.body + let sendVerificationEmail = false const user = res.locals.oauth.token.user const oldUserAuditView = new UserAuditView(user.toFormattedJSON({})) if (body.password !== undefined) user.password = body.password - if (body.email !== undefined) user.email = body.email if (body.nsfwPolicy !== undefined) user.nsfwPolicy = body.nsfwPolicy if (body.webTorrentEnabled !== undefined) user.webTorrentEnabled = body.webTorrentEnabled if (body.autoPlayVideo !== undefined) user.autoPlayVideo = body.autoPlayVideo if (body.videosHistoryEnabled !== undefined) user.videosHistoryEnabled = body.videosHistoryEnabled + if (body.videoLanguages !== undefined) user.videoLanguages = body.videoLanguages + + if (body.email !== undefined) { + if (CONFIG.SIGNUP.REQUIRES_EMAIL_VERIFICATION) { + user.pendingEmail = body.email + sendVerificationEmail = true + } else { + user.email = body.email + } + } await sequelizeTypescript.transaction(async t => { const userAccount = await AccountModel.load(user.Account.id) @@ -196,6 +207,10 @@ async function updateMe (req: express.Request, res: express.Response) { auditLogger.update(getAuditIdFromRes(res), new UserAuditView(user.toFormattedJSON({})), oldUserAuditView) }) + if (sendVerificationEmail === true) { + await sendVerifyUserEmail(user, true) + } + return res.sendStatus(204) }