summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/i/update-email.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-14 20:38:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-14 20:38:55 +0900
commitd66e4b7ff97d512e2a2523815e2eef170456b37f (patch)
tree59ae1a102d88b5c2c2236b734ea4a584b4f9ba46 /src/server/api/endpoints/i/update-email.ts
parent10.100.0 (diff)
parent11.0.0 (diff)
downloadmisskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.gz
misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.bz2
misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints/i/update-email.ts')
-rw-r--r--src/server/api/endpoints/i/update-email.ts33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/server/api/endpoints/i/update-email.ts b/src/server/api/endpoints/i/update-email.ts
index c90462d850..15c62a9d08 100644
--- a/src/server/api/endpoints/i/update-email.ts
+++ b/src/server/api/endpoints/i/update-email.ts
@@ -1,5 +1,4 @@
import $ from 'cafy';
-import User, { pack } from '../../../../models/user';
import { publishMainStream } from '../../../../services/stream';
import define from '../../define';
import * as nodemailer from 'nodemailer';
@@ -9,6 +8,8 @@ import config from '../../../../config';
import * as ms from 'ms';
import * as bcrypt from 'bcryptjs';
import { apiLogger } from '../../logger';
+import { Users, UserProfiles } from '../../../../models';
+import { ensure } from '../../../../prelude/ensure';
export const meta = {
requireCredential: true,
@@ -32,36 +33,34 @@ export const meta = {
};
export default define(meta, async (ps, user) => {
+ const profile = await UserProfiles.findOne({ userId: user.id }).then(ensure);
+
// Compare password
- const same = await bcrypt.compare(ps.password, user.password);
+ const same = await bcrypt.compare(ps.password, profile.password!);
if (!same) {
throw new Error('incorrect password');
}
- await User.update(user._id, {
- $set: {
- email: ps.email,
- emailVerified: false,
- emailVerifyCode: null
- }
+ await UserProfiles.update({ userId: user.id }, {
+ email: ps.email,
+ emailVerified: false,
+ emailVerifyCode: null
});
- const iObj = await pack(user._id, user, {
+ const iObj = await Users.pack(user.id, user, {
detail: true,
includeSecrets: true
});
// Publish meUpdated event
- publishMainStream(user._id, 'meUpdated', iObj);
+ publishMainStream(user.id, 'meUpdated', iObj);
if (ps.email != null) {
const code = rndstr('a-z0-9', 16);
- await User.update(user._id, {
- $set: {
- emailVerifyCode: code
- }
+ await UserProfiles.update({ userId: user.id }, {
+ emailVerifyCode: code
});
const meta = await fetchMeta();
@@ -77,14 +76,14 @@ export default define(meta, async (ps, user) => {
user: meta.smtpUser,
pass: meta.smtpPass
} : undefined
- });
+ } as any);
const link = `${config.url}/verify-email/${code}`;
transporter.sendMail({
- from: meta.email,
+ from: meta.email!,
to: ps.email,
- subject: meta.name,
+ subject: meta.name || 'Misskey',
text: `To verify email, please click this link: ${link}`
}, (error, info) => {
if (error) {