fix: 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 (#7918)
* Fix #7557 * CHANGELOG * Fix user * CHANGELOG * Tune CHANGELOG * Tune CHANGELOG * resolver * Remove check * Remove import * CHANGELOG * Tune Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
This commit is contained in:
		
							parent
							
								
									9236a8fd6c
								
							
						
					
					
						commit
						e2556189de
					
				|  | @ -14,6 +14,7 @@ | |||
| 
 | ||||
| ### Bugfixes | ||||
| - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 | ||||
| - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 | ||||
| 
 | ||||
| ## 12.94.1 (2021/10/25) | ||||
| 
 | ||||
|  |  | |||
|  | @ -288,6 +288,10 @@ export async function resolveNote(value: string | IObject, resolver?: Resolver): | |||
| 		} | ||||
| 		//#endregion
 | ||||
| 
 | ||||
| 		if (uri.startsWith(config.url)) { | ||||
| 			throw new StatusError('cannot resolve local note', 400, 'cannot resolve local note'); | ||||
| 		} | ||||
| 
 | ||||
| 		// リモートサーバーからフェッチしてきて登録
 | ||||
| 		// ここでuriの代わりに添付されてきたNote Objectが指定されていると、サーバーフェッチを経ずにノートが生成されるが
 | ||||
| 		// 添付されてきたNote Objectは偽装されている可能性があるため、常にuriを指定してサーバーフェッチを行う。
 | ||||
|  |  | |||
|  | @ -29,6 +29,7 @@ import { toArray } from '@/prelude/array'; | |||
| import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata'; | ||||
| import { normalizeForSearch } from '@/misc/normalize-for-search'; | ||||
| import { truncate } from '@/misc/truncate'; | ||||
| import { StatusError } from '@/misc/fetch'; | ||||
| 
 | ||||
| const logger = apLogger; | ||||
| 
 | ||||
|  | @ -116,6 +117,10 @@ export async function fetchPerson(uri: string, resolver?: Resolver): Promise<Use | |||
| export async function createPerson(uri: string, resolver?: Resolver): Promise<User> { | ||||
| 	if (typeof uri !== 'string') throw new Error('uri is not string'); | ||||
| 
 | ||||
| 	if (uri.startsWith(config.url)) { | ||||
| 		throw new StatusError('cannot resolve local user', 400, 'cannot resolve local user'); | ||||
| 	} | ||||
| 
 | ||||
| 	if (resolver == null) resolver = new Resolver(); | ||||
| 
 | ||||
| 	const object = await resolver.resolve(uri) as any; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue