Introduce account document to user document

An account document is attached to a user document if an account of the
user is on the server. It may be missing if the user is on a remote server.
This commit is contained in:
Akihiko Odaki
2018-03-26 00:19:07 +09:00
parent a633f184ab
commit 19b9cb105d
70 changed files with 355 additions and 280 deletions

View File

@@ -36,7 +36,7 @@ export default async (req: express.Request, res: express.Response) => {
}, {
fields: {
data: false,
profile: false
'account.profile': false
}
});
@@ -48,12 +48,12 @@ export default async (req: express.Request, res: express.Response) => {
}
// Compare password
const same = await bcrypt.compare(password, user.password);
const same = await bcrypt.compare(password, user.account.password);
if (same) {
if (user.two_factor_enabled) {
if (user.account.two_factor_enabled) {
const verified = (speakeasy as any).totp.verify({
secret: user.two_factor_secret,
secret: user.account.two_factor_secret,
encoding: 'base32',
token: token
});

View File

@@ -105,38 +105,40 @@ export default async (req: express.Request, res: express.Response) => {
// Create account
const account: IUser = await User.insert({
token: secret,
avatar_id: null,
banner_id: null,
created_at: new Date(),
description: null,
email: null,
followers_count: 0,
following_count: 0,
links: null,
name: name,
password: hash,
posts_count: 0,
likes_count: 0,
liked_count: 0,
drive_capacity: 1073741824, // 1GB
username: username,
username_lower: username.toLowerCase(),
profile: {
bio: null,
birthday: null,
blood: null,
gender: null,
handedness: null,
height: null,
location: null,
weight: null
},
settings: {
auto_watch: true
},
client_settings: {
home: homeData
account: {
token: secret,
email: null,
links: null,
password: hash,
profile: {
bio: null,
birthday: null,
blood: null,
gender: null,
handedness: null,
height: null,
location: null,
weight: null
},
settings: {
auto_watch: true
},
client_settings: {
home: homeData
}
}
});