diff options
| author | Amelia Yukii <amelia.yukii@shourai.de> | 2024-03-30 11:05:58 +0000 |
|---|---|---|
| committer | Amelia Yukii <amelia.yukii@shourai.de> | 2024-03-30 11:05:58 +0000 |
| commit | 126248e58d0f4978325ac2b9b2e5775729ffb70a (patch) | |
| tree | 44b519f0ccc9537057adad4fb658cf186d301028 /packages/backend/src/server/api | |
| parent | merge: always align code to the left - fixes #436 (!453) (diff) | |
| parent | some validation fixes (diff) | |
| download | sharkey-126248e58d0f4978325ac2b9b2e5775729ffb70a.tar.gz sharkey-126248e58d0f4978325ac2b9b2e5775729ffb70a.tar.bz2 sharkey-126248e58d0f4978325ac2b9b2e5775729ffb70a.zip | |
merge: some validation fixes (!484)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/484
Closes #469
Approved-by: Amelia Yukii <amelia.yukii@shourai.de>
Diffstat (limited to 'packages/backend/src/server/api')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/ap/show.ts | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints/ap/show.ts b/packages/backend/src/server/api/endpoints/ap/show.ts index 364a4826e3..ca6789a464 100644 --- a/packages/backend/src/server/api/endpoints/ap/show.ts +++ b/packages/backend/src/server/api/endpoints/ap/show.ts @@ -113,8 +113,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- @bindThis private async fetchAny(uri: string, me: MiLocalUser | null | undefined): Promise<SchemaType<typeof meta['res']> | null> { // ブロックしてたら中断 + const host = this.utilityService.extractDbHost(uri); const fetchedMeta = await this.metaService.fetch(); - if (this.utilityService.isBlockedHost(fetchedMeta.blockedHosts, this.utilityService.extractDbHost(uri))) return null; + if (this.utilityService.isBlockedHost(fetchedMeta.blockedHosts, host)) return null; let local = await this.mergePack(me, ...await Promise.all([ this.apDbResolverService.getUserFromApId(uri), @@ -122,6 +123,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- ])); if (local != null) return local; + // local object, not found in db? fail + if (this.utilityService.isSelfHost(host)) return null; + // リモートから一旦オブジェクトフェッチ const resolver = this.apResolverService.createResolver(); const object = await resolver.resolve(uri) as any; |