diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/api/private/signup.ts | 46 | ||||
| -rw-r--r-- | src/server/web/index.ts | 7 | ||||
| -rw-r--r-- | src/server/web/views/user.pug | 14 |
3 files changed, 38 insertions, 29 deletions
diff --git a/src/server/api/private/signup.ts b/src/server/api/private/signup.ts index 5ed25fa411..ed4a533dec 100644 --- a/src/server/api/private/signup.ts +++ b/src/server/api/private/signup.ts @@ -12,6 +12,7 @@ import { User } from '../../../models/entities/user'; import { UserKeypair } from '../../../models/entities/user-keypair'; import { toPuny } from '../../../misc/convert-host'; import { UserProfile } from '../../../models/entities/user-profile'; +import { getConnection } from 'typeorm'; export default async (ctx: Koa.BaseContext) => { const body = ctx.request.body as any; @@ -99,28 +100,33 @@ export default async (ctx: Koa.BaseContext) => { e ? j(e) : s([publicKey, privateKey]) )); - const account = await Users.save({ - id: genId(), - createdAt: new Date(), - username: username, - usernameLower: username.toLowerCase(), - host: toPuny(host), - token: secret, - isAdmin: config.autoAdmin && usersCount === 0, - } as User); + let account: User; - await UserKeypairs.save({ - publicKey: keyPair[0], - privateKey: keyPair[1], - userId: account.id - } as UserKeypair); + // Start transaction + await getConnection().transaction(async transactionalEntityManager => { + account = await transactionalEntityManager.save(new User({ + id: genId(), + createdAt: new Date(), + username: username, + usernameLower: username.toLowerCase(), + host: toPuny(host), + token: secret, + isAdmin: config.autoAdmin && usersCount === 0, + })); - await UserProfiles.save({ - userId: account.id, - autoAcceptFollowed: true, - autoWatch: false, - password: hash, - } as Partial<UserProfile>); + await transactionalEntityManager.save(new UserKeypair({ + publicKey: keyPair[0], + privateKey: keyPair[1], + userId: account.id + })); + + await transactionalEntityManager.save(new UserProfile({ + userId: account.id, + autoAcceptFollowed: true, + autoWatch: false, + password: hash, + })); + }); usersChart.update(account, true); diff --git a/src/server/web/index.ts b/src/server/web/index.ts index de0d65cf33..d1a15e3929 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -16,7 +16,7 @@ import fetchMeta from '../../misc/fetch-meta'; import * as pkg from '../../../package.json'; import { genOpenapiSpec } from '../api/openapi/gen-spec'; import config from '../../config'; -import { Users, Notes, Emojis } from '../../models'; +import { Users, Notes, Emojis, UserProfiles } from '../../models'; import parseAcct from '../../misc/acct/parse'; import getNoteSummary from '../../misc/get-note-summary'; @@ -149,11 +149,14 @@ router.get('/@:user', async (ctx, next) => { usernameLower: username.toLowerCase(), host }); + const profile = await UserProfiles.findOne({ + userId: user.id + }); if (user != null) { const meta = await fetchMeta(); await ctx.render('user', { - user, + user, profile, instanceName: meta.name || 'Misskey' }); ctx.set('Cache-Control', 'public, max-age=180'); diff --git a/src/server/web/views/user.pug b/src/server/web/views/user.pug index 3f32933f52..bff98ba80f 100644 --- a/src/server/web/views/user.pug +++ b/src/server/web/views/user.pug @@ -9,12 +9,12 @@ block title = `${title} | ${instanceName}` block desc - meta(name='description' content= user.description) + meta(name='description' content= profile.description) block og meta(property='og:type' content='blog') meta(property='og:title' content= title) - meta(property='og:description' content= user.description) + meta(property='og:description' content= profile.description) meta(property='og:url' content= url) meta(property='og:image' content= img) @@ -24,12 +24,12 @@ block meta meta(name='twitter:card' content='summary') - if user.twitter - meta(name='twitter:creator' content=`@${user.twitter.screenName}`) + if profile.twitter + meta(name='twitter:creator' content=`@${profile.twitter.screenName}`) if !user.host - link(rel='alternate' href=`${config.url}/users/${user._id}` type='application/activity+json') + link(rel='alternate' href=`${config.url}/users/${user.id}` type='application/activity+json') if user.uri link(rel='alternate' href=user.uri type='application/activity+json') - if user.url - link(rel='alternate' href=user.url type='text/html') + if profile.url + link(rel='alternate' href=profile.url type='text/html') |