Fix bug
This commit is contained in:
		
							parent
							
								
									0f7fbacb17
								
							
						
					
					
						commit
						dddd760efd
					
				
					 1 changed files with 35 additions and 27 deletions
				
			
		| 
						 | 
					@ -14,6 +14,34 @@ import htmlToMFM from '../../../mfm/html-to-mfm';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const log = debug('misskey:activitypub');
 | 
					const log = debug('misskey:activitypub');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function validatePerson(x: any) {
 | 
				
			||||||
 | 
						if (x == null) {
 | 
				
			||||||
 | 
							return new Error('invalid person: object is null');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (x.type != 'Person' && x.type != 'Service') {
 | 
				
			||||||
 | 
							return new Error(`invalid person: object is not a person or service '${x.type}'`);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (typeof x.preferredUsername !== 'string') {
 | 
				
			||||||
 | 
							return new Error('invalid person: preferredUsername is not a string');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (typeof x.inbox !== 'string') {
 | 
				
			||||||
 | 
							return new Error('invalid person: inbox is not a string');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!validateUsername(x.preferredUsername)) {
 | 
				
			||||||
 | 
							return new Error('invalid person: invalid username');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!isValidName(x.name == '' ? null : x.name)) {
 | 
				
			||||||
 | 
							return new Error('invalid person: invalid name');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return null;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Personをフェッチします。
 | 
					 * Personをフェッチします。
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -47,28 +75,10 @@ export async function createPerson(value: any, resolver?: Resolver): Promise<IUs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const object = await resolver.resolve(value) as any;
 | 
						const object = await resolver.resolve(value) as any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (object == null) {
 | 
						const err = validatePerson(object);
 | 
				
			||||||
		throw new Error('invalid person: object is null');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (object.type != 'Person' && object.type != 'Service') {
 | 
						if (err) {
 | 
				
			||||||
		throw new Error(`invalid person: object is not a person or service '${object.type}'`);
 | 
							throw err;
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (typeof object.preferredUsername !== 'string') {
 | 
					 | 
				
			||||||
		throw new Error('invalid person: preferredUsername is not a string');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (typeof object.inbox !== 'string') {
 | 
					 | 
				
			||||||
		throw new Error('invalid person: inbox is not a string');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!validateUsername(object.preferredUsername)) {
 | 
					 | 
				
			||||||
		throw new Error('invalid person: invalid username');
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!isValidName(object.name == '' ? null : object.name)) {
 | 
					 | 
				
			||||||
		throw new Error('invalid person: invalid name');
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const person: IPerson = object;
 | 
						const person: IPerson = object;
 | 
				
			||||||
| 
						 | 
					@ -198,12 +208,10 @@ export async function updatePerson(value: string | IObject, resolver?: Resolver)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const object = await resolver.resolve(value) as any;
 | 
						const object = await resolver.resolve(value) as any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (
 | 
						const err = validatePerson(object);
 | 
				
			||||||
		object == null ||
 | 
					
 | 
				
			||||||
		object.type !== 'Person'
 | 
						if (err) {
 | 
				
			||||||
	) {
 | 
							throw err;
 | 
				
			||||||
		log(`invalid person: ${JSON.stringify(object, null, 2)}`);
 | 
					 | 
				
			||||||
		throw new Error('invalid person');
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const person: IPerson = object;
 | 
						const person: IPerson = object;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue