From de94ac86a211dec657332d964693857ec235ce40 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 20 Nov 2020 11:21:08 +0100 Subject: Fix incorrect IDs in AP federation --- server/lib/activitypub/send/send-accept.ts | 11 +++++------ server/lib/activitypub/send/send-dislike.ts | 4 ++-- server/lib/activitypub/send/send-flag.ts | 4 ++-- server/lib/activitypub/send/send-follow.ts | 8 +++----- server/lib/activitypub/send/send-like.ts | 4 ++-- server/lib/activitypub/send/send-reject.ts | 11 +++++------ server/lib/activitypub/send/send-undo.ts | 30 ++++++++++++++--------------- server/lib/activitypub/send/send-view.ts | 10 +++++----- 8 files changed, 39 insertions(+), 43 deletions(-) (limited to 'server/lib/activitypub/send') diff --git a/server/lib/activitypub/send/send-accept.ts b/server/lib/activitypub/send/send-accept.ts index 50e192bdd..bb387e2c0 100644 --- a/server/lib/activitypub/send/send-accept.ts +++ b/server/lib/activitypub/send/send-accept.ts @@ -1,9 +1,9 @@ import { ActivityAccept, ActivityFollow } from '../../../../shared/models/activitypub' -import { getActorFollowAcceptActivityPubUrl, getActorFollowActivityPubUrl } from '../url' -import { unicastTo } from './utils' -import { buildFollowActivity } from './send-follow' import { logger } from '../../../helpers/logger' import { MActor, MActorFollowActors } from '../../../types/models' +import { getLocalActorFollowAcceptActivityPubUrl } from '../url' +import { buildFollowActivity } from './send-follow' +import { unicastTo } from './utils' function sendAccept (actorFollow: MActorFollowActors) { const follower = actorFollow.ActorFollower @@ -16,10 +16,9 @@ function sendAccept (actorFollow: MActorFollowActors) { logger.info('Creating job to accept follower %s.', follower.url) - const followUrl = getActorFollowActivityPubUrl(follower, me) - const followData = buildFollowActivity(followUrl, follower, me) + const followData = buildFollowActivity(actorFollow.url, follower, me) - const url = getActorFollowAcceptActivityPubUrl(actorFollow) + const url = getLocalActorFollowAcceptActivityPubUrl(actorFollow) const data = buildAcceptActivity(url, me, followData) return unicastTo(data, me, follower.inboxUrl) diff --git a/server/lib/activitypub/send/send-dislike.ts b/server/lib/activitypub/send/send-dislike.ts index 1bb7dc937..274230535 100644 --- a/server/lib/activitypub/send/send-dislike.ts +++ b/server/lib/activitypub/send/send-dislike.ts @@ -1,5 +1,5 @@ import { Transaction } from 'sequelize' -import { getVideoDislikeActivityPubUrl } from '../url' +import { getVideoDislikeActivityPubUrlByLocalActor } from '../url' import { logger } from '../../../helpers/logger' import { ActivityAudience, ActivityDislike } from '../../../../shared/models/activitypub' import { sendVideoRelatedActivity } from './utils' @@ -10,7 +10,7 @@ function sendDislike (byActor: MActor, video: MVideoAccountLight, t: Transaction logger.info('Creating job to dislike %s.', video.url) const activityBuilder = (audience: ActivityAudience) => { - const url = getVideoDislikeActivityPubUrl(byActor, video) + const url = getVideoDislikeActivityPubUrlByLocalActor(byActor, video) return buildDislikeActivity(url, byActor, video, audience) } diff --git a/server/lib/activitypub/send/send-flag.ts b/server/lib/activitypub/send/send-flag.ts index 821637ec8..b0483b5a0 100644 --- a/server/lib/activitypub/send/send-flag.ts +++ b/server/lib/activitypub/send/send-flag.ts @@ -3,13 +3,13 @@ import { ActivityAudience, ActivityFlag } from '../../../../shared/models/activi import { logger } from '../../../helpers/logger' import { MAbuseAP, MAccountLight, MActor } from '../../../types/models' import { audiencify, getAudience } from '../audience' -import { getAbuseActivityPubUrl } from '../url' +import { getLocalAbuseActivityPubUrl } from '../url' import { unicastTo } from './utils' function sendAbuse (byActor: MActor, abuse: MAbuseAP, flaggedAccount: MAccountLight, t: Transaction) { if (!flaggedAccount.Actor.serverId) return // Local user - const url = getAbuseActivityPubUrl(abuse) + const url = getLocalAbuseActivityPubUrl(abuse) logger.info('Creating job to send abuse %s.', url) diff --git a/server/lib/activitypub/send/send-follow.ts b/server/lib/activitypub/send/send-follow.ts index 08f1d83f9..9219640dd 100644 --- a/server/lib/activitypub/send/send-follow.ts +++ b/server/lib/activitypub/send/send-follow.ts @@ -1,9 +1,8 @@ +import { Transaction } from 'sequelize' import { ActivityFollow } from '../../../../shared/models/activitypub' -import { getActorFollowActivityPubUrl } from '../url' -import { unicastTo } from './utils' import { logger } from '../../../helpers/logger' -import { Transaction } from 'sequelize' import { MActor, MActorFollowActors } from '../../../types/models' +import { unicastTo } from './utils' function sendFollow (actorFollow: MActorFollowActors, t: Transaction) { const me = actorFollow.ActorFollower @@ -14,8 +13,7 @@ function sendFollow (actorFollow: MActorFollowActors, t: Transaction) { logger.info('Creating job to send follow request to %s.', following.url) - const url = getActorFollowActivityPubUrl(me, following) - const data = buildFollowActivity(url, me, following) + const data = buildFollowActivity(actorFollow.url, me, following) t.afterCommit(() => unicastTo(data, me, following.inboxUrl)) } diff --git a/server/lib/activitypub/send/send-like.ts b/server/lib/activitypub/send/send-like.ts index 29fcfc404..ed6dfcf56 100644 --- a/server/lib/activitypub/send/send-like.ts +++ b/server/lib/activitypub/send/send-like.ts @@ -1,6 +1,6 @@ import { Transaction } from 'sequelize' import { ActivityAudience, ActivityLike } from '../../../../shared/models/activitypub' -import { getVideoLikeActivityPubUrl } from '../url' +import { getVideoLikeActivityPubUrlByLocalActor } from '../url' import { sendVideoRelatedActivity } from './utils' import { audiencify, getAudience } from '../audience' import { logger } from '../../../helpers/logger' @@ -10,7 +10,7 @@ function sendLike (byActor: MActor, video: MVideoAccountLight, t: Transaction) { logger.info('Creating job to like %s.', video.url) const activityBuilder = (audience: ActivityAudience) => { - const url = getVideoLikeActivityPubUrl(byActor, video) + const url = getVideoLikeActivityPubUrlByLocalActor(byActor, video) return buildLikeActivity(url, byActor, video, audience) } diff --git a/server/lib/activitypub/send/send-reject.ts b/server/lib/activitypub/send/send-reject.ts index befbcb8da..8d74a7848 100644 --- a/server/lib/activitypub/send/send-reject.ts +++ b/server/lib/activitypub/send/send-reject.ts @@ -1,11 +1,11 @@ import { ActivityFollow, ActivityReject } from '../../../../shared/models/activitypub' -import { getActorFollowActivityPubUrl, getActorFollowRejectActivityPubUrl } from '../url' -import { unicastTo } from './utils' -import { buildFollowActivity } from './send-follow' import { logger } from '../../../helpers/logger' import { MActor } from '../../../types/models' +import { getLocalActorFollowRejectActivityPubUrl } from '../url' +import { buildFollowActivity } from './send-follow' +import { unicastTo } from './utils' -function sendReject (follower: MActor, following: MActor) { +function sendReject (followUrl: string, follower: MActor, following: MActor) { if (!follower.serverId) { // This should never happen logger.warn('Do not sending reject to local follower.') return @@ -13,10 +13,9 @@ function sendReject (follower: MActor, following: MActor) { logger.info('Creating job to reject follower %s.', follower.url) - const followUrl = getActorFollowActivityPubUrl(follower, following) const followData = buildFollowActivity(followUrl, follower, following) - const url = getActorFollowRejectActivityPubUrl(follower, following) + const url = getLocalActorFollowRejectActivityPubUrl(follower, following) const data = buildRejectActivity(url, following, followData) return unicastTo(data, following, follower.inboxUrl) diff --git a/server/lib/activitypub/send/send-undo.ts b/server/lib/activitypub/send/send-undo.ts index 6ed343300..352c158fd 100644 --- a/server/lib/activitypub/send/send-undo.ts +++ b/server/lib/activitypub/send/send-undo.ts @@ -8,18 +8,11 @@ import { ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub' -import { VideoModel } from '../../../models/video/video' -import { getActorFollowActivityPubUrl, getUndoActivityPubUrl, getVideoDislikeActivityPubUrl, getVideoLikeActivityPubUrl } from '../url' -import { broadcastToFollowers, sendVideoRelatedActivity, unicastTo } from './utils' -import { audiencify, getAudience } from '../audience' -import { buildCreateActivity } from './send-create' -import { buildFollowActivity } from './send-follow' -import { buildLikeActivity } from './send-like' -import { buildAnnounceWithVideoAudience } from './send-announce' import { logger } from '../../../helpers/logger' -import { buildDislikeActivity } from './send-dislike' +import { VideoModel } from '../../../models/video/video' import { - MActor, MActorAudience, + MActor, + MActorAudience, MActorFollowActors, MActorLight, MVideo, @@ -27,6 +20,14 @@ import { MVideoRedundancyVideo, MVideoShare } from '../../../types/models' +import { audiencify, getAudience } from '../audience' +import { getUndoActivityPubUrl, getVideoDislikeActivityPubUrlByLocalActor, getVideoLikeActivityPubUrlByLocalActor } from '../url' +import { buildAnnounceWithVideoAudience } from './send-announce' +import { buildCreateActivity } from './send-create' +import { buildDislikeActivity } from './send-dislike' +import { buildFollowActivity } from './send-follow' +import { buildLikeActivity } from './send-like' +import { broadcastToFollowers, sendVideoRelatedActivity, unicastTo } from './utils' function sendUndoFollow (actorFollow: MActorFollowActors, t: Transaction) { const me = actorFollow.ActorFollower @@ -37,10 +38,9 @@ function sendUndoFollow (actorFollow: MActorFollowActors, t: Transaction) { logger.info('Creating job to send an unfollow request to %s.', following.url) - const followUrl = getActorFollowActivityPubUrl(me, following) - const undoUrl = getUndoActivityPubUrl(followUrl) + const undoUrl = getUndoActivityPubUrl(actorFollow.url) - const followActivity = buildFollowActivity(followUrl, me, following) + const followActivity = buildFollowActivity(actorFollow.url, me, following) const undoActivity = undoActivityData(undoUrl, me, followActivity) t.afterCommit(() => unicastTo(undoActivity, me, following.inboxUrl)) @@ -61,7 +61,7 @@ async function sendUndoAnnounce (byActor: MActorLight, videoShare: MVideoShare, async function sendUndoLike (byActor: MActor, video: MVideoAccountLight, t: Transaction) { logger.info('Creating job to undo a like of video %s.', video.url) - const likeUrl = getVideoLikeActivityPubUrl(byActor, video) + const likeUrl = getVideoLikeActivityPubUrlByLocalActor(byActor, video) const likeActivity = buildLikeActivity(likeUrl, byActor, video) return sendUndoVideoRelatedActivity({ byActor, video, url: likeUrl, activity: likeActivity, transaction: t }) @@ -70,7 +70,7 @@ async function sendUndoLike (byActor: MActor, video: MVideoAccountLight, t: Tran async function sendUndoDislike (byActor: MActor, video: MVideoAccountLight, t: Transaction) { logger.info('Creating job to undo a dislike of video %s.', video.url) - const dislikeUrl = getVideoDislikeActivityPubUrl(byActor, video) + const dislikeUrl = getVideoDislikeActivityPubUrlByLocalActor(byActor, video) const dislikeActivity = buildDislikeActivity(dislikeUrl, byActor, video) return sendUndoVideoRelatedActivity({ byActor, video, url: dislikeUrl, activity: dislikeActivity, transaction: t }) diff --git a/server/lib/activitypub/send/send-view.ts b/server/lib/activitypub/send/send-view.ts index 3358188a2..9254dc7c5 100644 --- a/server/lib/activitypub/send/send-view.ts +++ b/server/lib/activitypub/send/send-view.ts @@ -1,17 +1,17 @@ import { Transaction } from 'sequelize' +import { MActorAudience, MVideoImmutable, MVideoUrl } from '@server/types/models' import { ActivityAudience, ActivityView } from '../../../../shared/models/activitypub' +import { logger } from '../../../helpers/logger' import { ActorModel } from '../../../models/activitypub/actor' -import { getVideoLikeActivityPubUrl } from '../url' -import { sendVideoRelatedActivity } from './utils' import { audiencify, getAudience } from '../audience' -import { logger } from '../../../helpers/logger' -import { MActorAudience, MVideoImmutable, MVideoUrl } from '@server/types/models' +import { getLocalVideoViewActivityPubUrl } from '../url' +import { sendVideoRelatedActivity } from './utils' async function sendView (byActor: ActorModel, video: MVideoImmutable, t: Transaction) { logger.info('Creating job to send view of %s.', video.url) const activityBuilder = (audience: ActivityAudience) => { - const url = getVideoLikeActivityPubUrl(byActor, video) + const url = getLocalVideoViewActivityPubUrl(byActor, video) return buildViewActivity(url, byActor, video, audience) } -- cgit v1.2.3