fix: 複数idを指定するusers/showが関係ないユーザを返すことがある問題を修正 (#13765)
				
					
				
			* fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 * test: fix misskey js test * chore: user/showがnullを返さないように * chore: pass lambda instead of pushVisibleUser
This commit is contained in:
		
							parent
							
								
									ed74f7b4a8
								
							
						
					
					
						commit
						5836bd85df
					
				
					 4 changed files with 8 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -83,6 +83,7 @@
 | 
			
		|||
- Fix: AP Link等は添付ファイル扱いしないようになど (#13754)
 | 
			
		||||
- Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正
 | 
			
		||||
- Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正
 | 
			
		||||
- Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正
 | 
			
		||||
 | 
			
		||||
## 2024.3.1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -228,7 +228,7 @@ export type SchemaTypeDef<p extends Schema> =
 | 
			
		|||
			p['items']['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<NonNullable<p['items']['allOf']>>>[] :
 | 
			
		||||
			never
 | 
			
		||||
		) :
 | 
			
		||||
		p['items'] extends NonNullable<Schema> ? SchemaTypeDef<p['items']>[] :
 | 
			
		||||
		p['items'] extends NonNullable<Schema> ? SchemaType<p['items']>[] :
 | 
			
		||||
		any[]
 | 
			
		||||
	) :
 | 
			
		||||
	p['anyOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<p['anyOf']> & PartialIntersection<UnionSchemaType<p['anyOf']>> :
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,9 +110,11 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
 | 
			
		|||
				});
 | 
			
		||||
 | 
			
		||||
				// リクエストされた通りに並べ替え
 | 
			
		||||
				// 順番は保持されるけど数は減ってる可能性がある
 | 
			
		||||
				const _users: MiUser[] = [];
 | 
			
		||||
				for (const id of ps.userIds) {
 | 
			
		||||
					_users.push(users.find(x => x.id === id)!);
 | 
			
		||||
					const user = users.find(x => x.id === id);
 | 
			
		||||
					if (user != null) _users.push(user);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				return await Promise.all(_users.map(u => this.userEntityService.pack(u, me, {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,7 +190,7 @@ const localOnly = ref(props.initialLocalOnly ?? (defaultStore.state.rememberNote
 | 
			
		|||
const visibility = ref(props.initialVisibility ?? (defaultStore.state.rememberNoteVisibility ? defaultStore.state.visibility : defaultStore.state.defaultNoteVisibility));
 | 
			
		||||
const visibleUsers = ref<Misskey.entities.UserDetailed[]>([]);
 | 
			
		||||
if (props.initialVisibleUsers) {
 | 
			
		||||
	props.initialVisibleUsers.forEach(pushVisibleUser);
 | 
			
		||||
	props.initialVisibleUsers.forEach(u => pushVisibleUser(u));
 | 
			
		||||
}
 | 
			
		||||
const reactionAcceptance = ref(defaultStore.state.reactionAcceptance);
 | 
			
		||||
const autocomplete = ref(null);
 | 
			
		||||
| 
						 | 
				
			
			@ -336,7 +336,7 @@ if (props.reply && ['home', 'followers', 'specified'].includes(props.reply.visib
 | 
			
		|||
			misskeyApi('users/show', {
 | 
			
		||||
				userIds: props.reply.visibleUserIds.filter(uid => uid !== $i.id && uid !== props.reply?.userId),
 | 
			
		||||
			}).then(users => {
 | 
			
		||||
				users.forEach(pushVisibleUser);
 | 
			
		||||
				users.forEach(u => pushVisibleUser(u));
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -967,11 +967,7 @@ onMounted(() => {
 | 
			
		|||
				}
 | 
			
		||||
				if (draft.data.visibleUserIds) {
 | 
			
		||||
					misskeyApi('users/show', { userIds: draft.data.visibleUserIds }).then(users => {
 | 
			
		||||
						for (let i = 0; i < users.length; i++) {
 | 
			
		||||
							if (users[i].id === draft.data.visibleUserIds[i]) {
 | 
			
		||||
								pushVisibleUser(users[i]);
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						users.forEach(u => pushVisibleUser(u));
 | 
			
		||||
					});
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue