diff options
| author | Johann150 <johann.galle@protonmail.com> | 2022-06-04 06:52:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-04 13:52:42 +0900 |
| commit | 32dff2846003bb079891593b660869511fca5f01 (patch) | |
| tree | 63fd57c6c44f0fbab66fa94e40696c1dca643de2 /packages/backend/src/services/blocking/create.ts | |
| parent | fix: ensure resolver does not fetch local resources via HTTP(S) (#8733) (diff) | |
| download | misskey-32dff2846003bb079891593b660869511fca5f01.tar.gz misskey-32dff2846003bb079891593b660869511fca5f01.tar.bz2 misskey-32dff2846003bb079891593b660869511fca5f01.zip | |
fix: add id for activitypub follows (#8689)
* add id for activitypub follows
* fix lint
* fix: follower must be local, followee must be remote
Misskey will only use ActivityPub follow requests for users that are local
and are requesting to follow a remote user. This check is to ensure that
this endpoint can not be used by other services or instances.
* fix: missing import
* render block with id
* fix comment
Diffstat (limited to 'packages/backend/src/services/blocking/create.ts')
| -rw-r--r-- | packages/backend/src/services/blocking/create.ts | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/backend/src/services/blocking/create.ts b/packages/backend/src/services/blocking/create.ts index b2be78b220..a2c61cca22 100644 --- a/packages/backend/src/services/blocking/create.ts +++ b/packages/backend/src/services/blocking/create.ts @@ -2,9 +2,10 @@ import { publishMainStream, publishUserEvent } from '@/services/stream.js'; import { renderActivity } from '@/remote/activitypub/renderer/index.js'; import renderFollow from '@/remote/activitypub/renderer/follow.js'; import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import renderBlock from '@/remote/activitypub/renderer/block.js'; +import { renderBlock } from '@/remote/activitypub/renderer/block.js'; import { deliver } from '@/queue/index.js'; import renderReject from '@/remote/activitypub/renderer/reject.js'; +import { Blocking } from '@/models/entities/blocking.js'; import { User } from '@/models/entities/user.js'; import { Blockings, Users, FollowRequests, Followings, UserListJoinings, UserLists } from '@/models/index.js'; import { perUserFollowingChart } from '@/services/chart/index.js'; @@ -22,15 +23,19 @@ export default async function(blocker: User, blockee: User) { removeFromList(blockee, blocker), ]); - await Blockings.insert({ + const blocking = { id: genId(), createdAt: new Date(), + blocker, blockerId: blocker.id, + blockee, blockeeId: blockee.id, - }); + } as Blocking; + + await Blockings.insert(blocking); if (Users.isLocalUser(blocker) && Users.isRemoteUser(blockee)) { - const content = renderActivity(renderBlock(blocker, blockee)); + const content = renderActivity(renderBlock(blocking)); deliver(blocker, content, blockee.inbox); } } |