diff --git a/src/client/app/common/views/components/integrations.vue b/src/client/app/common/views/components/integrations.vue index bd6327ff57ba..bf629397a712 100644 --- a/src/client/app/common/views/components/integrations.vue +++ b/src/client/app/common/views/components/integrations.vue @@ -2,7 +2,7 @@
- +
@@ -14,7 +14,14 @@ export default Vue.extend({ components: { XIntegration }, - props: ['user'] + props: ['user'], + computed: { + discordName(): string { + return this.user.discord.global_name + ? `${this.user.discord.username}` + : `${this.user.discord.username}#${this.user.discord.discriminator}`; + }, + }, }); diff --git a/src/client/app/common/views/components/settings/integration.vue b/src/client/app/common/views/components/settings/integration.vue index a481d5d7e3fb..a408ef64b2eb 100644 --- a/src/client/app/common/views/components/settings/integration.vue +++ b/src/client/app/common/views/components/settings/integration.vue @@ -11,7 +11,7 @@
Discord
-

{{ $t('connected-to') }}: @{{ $store.state.i.discord.username }}#{{ $store.state.i.discord.discriminator }}

+

{{ $t('connected-to') }}: @{{ discordName }}

{{ $t('disconnect') }} {{ $t('connect') }}
@@ -70,6 +70,14 @@ export default Vue.extend({ }); }, + computed: { + discordName(): string { + return this.$store.state.i.discord.global_name + ? `${this.$store.state.i.discord.username}` + : `${this.$store.state.i.discord.username}#${this.$store.state.i.discord.discriminator}`; + }, + }, + methods: { connectTwitter() { this.twitterForm = window.open(apiUrl + '/connect/twitter', diff --git a/src/models/packed-schemas.ts b/src/models/packed-schemas.ts index 499506757df9..3f68945b8cb1 100644 --- a/src/models/packed-schemas.ts +++ b/src/models/packed-schemas.ts @@ -112,6 +112,7 @@ export type PackedUser = ThinPackedUser & { }; discord?: { id: string; + global_name?: string; username: string; discriminator: string; }; diff --git a/src/models/user.ts b/src/models/user.ts index f246ab84d3b3..4d0afd097a49 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -184,6 +184,7 @@ export interface ILocalUser extends IUserBase { refreshToken: string; expiresDate: number; id: string; + global_name?: string; username: string; discriminator: string; }; @@ -519,16 +520,17 @@ export async function pack( twitter: db.twitter ? { screenName: db.twitter?.screenName, userId: db.twitter?.userId - } : undefined, + } : null, github: db.github ? { id: db.github?.id, login: db.github?.login - } : undefined, + } : null, discord: db.discord ? { id: db.discord?.id, + global_name: db.discord?.global_name, username: db.discord?.username, discriminator: db.discord?.discriminator, - } : undefined, + } : null, }: {}), } : {}), diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts index 14c4ca1876c6..93103383928a 100644 --- a/src/server/api/service/discord.ts +++ b/src/server/api/service/discord.ts @@ -169,7 +169,7 @@ router.get('/dc/cb', async ctx => { }); })); - const { id, username, discriminator } = await getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, { + const { id, global_name, username, discriminator } = await getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, { 'Authorization': `Bearer ${accessToken}`, }); @@ -198,6 +198,7 @@ router.get('/dc/cb', async ctx => { accessToken, refreshToken, expiresDate, + global_name, username, discriminator } @@ -244,7 +245,7 @@ router.get('/dc/cb', async ctx => { }); })); - const { id, username, discriminator } = await getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, { + const { id, global_name, username, discriminator } = await getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, { 'Authorization': `Bearer ${accessToken}`, }); if (!id || !username || !discriminator) { @@ -262,6 +263,7 @@ router.get('/dc/cb', async ctx => { refreshToken, expiresDate, id, + global_name, username, discriminator }