From 38967f7b73cec6f6198c72d62f8d64bb88e6951c Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 21 Jan 2019 13:52:46 +0100 Subject: [PATCH] Add server host in notification account field --- client/src/app/app.component.html | 2 +- .../app/shared/users/user-notification.model.ts | 4 ++-- server/models/account/user-notification.ts | 15 ++++++++++++++- shared/models/users/user-notification.model.ts | 1 + shared/utils/users/user-notifications.ts | 1 + 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/client/src/app/app.component.html b/client/src/app/app.component.html index dfda556f5..d398d4f35 100644 --- a/client/src/app/app.component.html +++ b/client/src/app/app.component.html @@ -30,7 +30,7 @@ diff --git a/client/src/app/shared/users/user-notification.model.ts b/client/src/app/shared/users/user-notification.model.ts index c5996a8a1..3bb53ff45 100644 --- a/client/src/app/shared/users/user-notification.model.ts +++ b/client/src/app/shared/users/user-notification.model.ts @@ -136,8 +136,8 @@ export class UserNotification implements UserNotificationServer { return '/videos/watch/' + video.uuid } - private buildAccountUrl (account: { name: string }) { - return '/accounts/' + account.name + private buildAccountUrl (account: { name: string, host: string }) { + return '/accounts/' + Actor.CREATE_BY_STRING(account.name, account.host) } private buildVideoImportUrl () { diff --git a/server/models/account/user-notification.ts b/server/models/account/user-notification.ts index 1094eec78..6cdbb827b 100644 --- a/server/models/account/user-notification.ts +++ b/server/models/account/user-notification.ts @@ -28,6 +28,7 @@ import { VideoImportModel } from '../video/video-import' import { ActorModel } from '../activitypub/actor' import { ActorFollowModel } from '../activitypub/actor-follow' import { AvatarModel } from '../avatar/avatar' +import { ServerModel } from '../server/server' enum ScopeNames { WITH_ALL = 'WITH_ALL' @@ -43,6 +44,11 @@ function buildActorWithAvatarInclude () { attributes: [ 'filename' ], model: () => AvatarModel.unscoped(), required: false + }, + { + attributes: [ 'host' ], + model: () => ServerModel.unscoped(), + required: false } ] } @@ -132,6 +138,11 @@ function buildAccountInclude (required: boolean, withActor = false) { attributes: [ 'filename' ], model: () => AvatarModel.unscoped(), required: false + }, + { + attributes: [ 'host' ], + model: () => ServerModel.unscoped(), + required: false } ] }, @@ -411,7 +422,8 @@ export class UserNotificationModel extends Model { id: this.ActorFollow.ActorFollower.Account.id, displayName: this.ActorFollow.ActorFollower.Account.getDisplayName(), name: this.ActorFollow.ActorFollower.preferredUsername, - avatar: this.ActorFollow.ActorFollower.Avatar ? { path: this.ActorFollow.ActorFollower.Avatar.getWebserverPath() } : undefined + avatar: this.ActorFollow.ActorFollower.Avatar ? { path: this.ActorFollow.ActorFollower.Avatar.getWebserverPath() } : undefined, + host: this.ActorFollow.ActorFollower.getHost() }, following: { type: this.ActorFollow.ActorFollowing.VideoChannel ? 'channel' as 'channel' : 'account' as 'account', @@ -453,6 +465,7 @@ export class UserNotificationModel extends Model { id: accountOrChannel.id, displayName: accountOrChannel.getDisplayName(), name: accountOrChannel.Actor.preferredUsername, + host: accountOrChannel.Actor.getHost(), avatar } } diff --git a/shared/models/users/user-notification.model.ts b/shared/models/users/user-notification.model.ts index eaeb422df..186b62612 100644 --- a/shared/models/users/user-notification.model.ts +++ b/shared/models/users/user-notification.model.ts @@ -26,6 +26,7 @@ export interface ActorInfo { id: number displayName: string name: string + host: string avatar?: { path: string } diff --git a/shared/utils/users/user-notifications.ts b/shared/utils/users/user-notifications.ts index bcbe29fc7..b85d5d2f1 100644 --- a/shared/utils/users/user-notifications.ts +++ b/shared/utils/users/user-notifications.ts @@ -146,6 +146,7 @@ function checkVideo (video: any, videoName?: string, videoUUID?: string) { function checkActor (actor: any) { expect(actor.displayName).to.be.a('string') expect(actor.displayName).to.not.be.empty + expect(actor.host).to.not.be.undefined } function checkComment (comment: any, commentId: number, threadId: number) {