From 7f547a8c10aac20fd638ce6703ff6bdaa4ecb8a1 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 22 Jun 2025 14:54:08 -0400 Subject: [PATCH] revert 44ff9f39: pass access token through API to enforce rank --- packages/backend/src/core/ChatService.ts | 10 +++---- .../src/core/FanoutTimelineEndpointService.ts | 5 ++-- .../backend/src/core/NoteCreateService.ts | 4 +-- packages/backend/src/core/NoteEditService.ts | 2 +- .../backend/src/core/NotificationService.ts | 2 +- packages/backend/src/core/RoleService.ts | 7 ++--- .../backend/src/core/UserSearchService.ts | 6 ++--- .../entities/AbuseUserReportEntityService.ts | 17 +++++------- .../core/entities/BlockingEntityService.ts | 9 +++---- .../src/core/entities/ChannelEntityService.ts | 5 ++-- .../src/core/entities/ClipEntityService.ts | 10 +++---- .../src/core/entities/FlashEntityService.ts | 10 +++---- .../core/entities/FlashLikeEntityService.ts | 8 +++--- .../entities/FollowRequestEntityService.ts | 12 ++++----- .../core/entities/FollowingEntityService.ts | 24 +++++++---------- .../core/entities/GalleryLikeEntityService.ts | 8 +++--- .../core/entities/GalleryPostEntityService.ts | 10 +++---- .../core/entities/InstanceEntityService.ts | 8 +++--- .../core/entities/InviteCodeEntityService.ts | 12 ++++----- .../entities/ModerationLogEntityService.ts | 14 +++------- .../src/core/entities/MutingEntityService.ts | 9 +++---- .../entities/NoteFavoriteEntityService.ts | 8 +++--- .../entities/NoteReactionEntityService.ts | 12 ++++----- .../entities/NotificationEntityService.ts | 26 +++++++------------ .../src/core/entities/PageEntityService.ts | 10 +++---- .../core/entities/PageLikeEntityService.ts | 8 +++--- .../entities/RenoteMutingEntityService.ts | 9 +++---- .../src/core/entities/UserEntityService.ts | 16 +++++------- .../core/entities/UserListEntityService.ts | 9 +++---- .../src/server/api/ApiServerService.ts | 2 +- .../api/endpoints/admin/abuse-user-reports.ts | 4 +-- .../api/endpoints/admin/accounts/create.ts | 2 +- .../endpoints/admin/accounts/find-by-email.ts | 3 +-- .../api/endpoints/admin/drive/show-file.ts | 4 +-- .../api/endpoints/admin/invite/create.ts | 4 +-- .../server/api/endpoints/admin/invite/list.ts | 4 +-- .../api/endpoints/admin/roles/assign.ts | 4 +-- .../api/endpoints/admin/roles/unassign.ts | 4 +-- .../endpoints/admin/show-moderation-logs.ts | 4 +-- .../server/api/endpoints/admin/show-user.ts | 4 +-- .../api/endpoints/admin/silence-user.ts | 4 +-- .../api/endpoints/admin/suspend-user.ts | 4 +-- .../endpoints/admin/update-proxy-account.ts | 3 +-- .../server/api/endpoints/antennas/notes.ts | 4 +-- .../src/server/api/endpoints/ap/show.ts | 16 +++++------- .../api/endpoints/auth/session/userkey.ts | 1 - .../server/api/endpoints/blocking/create.ts | 3 +-- .../server/api/endpoints/blocking/delete.ts | 3 +-- .../src/server/api/endpoints/blocking/list.ts | 4 +-- .../api/endpoints/bubble-game/ranking.ts | 4 +-- .../server/api/endpoints/channels/create.ts | 4 +-- .../server/api/endpoints/channels/featured.ts | 4 +-- .../server/api/endpoints/channels/followed.ts | 4 +-- .../api/endpoints/channels/my-favorites.ts | 4 +-- .../server/api/endpoints/channels/owned.ts | 4 +-- .../src/server/api/endpoints/channels/show.ts | 4 +-- .../server/api/endpoints/channels/timeline.ts | 5 ++-- .../server/api/endpoints/channels/update.ts | 6 ++--- .../api/endpoints/charts/user/following.ts | 4 +-- .../endpoints/chat/messages/room-timeline.ts | 4 +-- .../api/endpoints/chat/messages/show.ts | 4 +-- .../server/api/endpoints/chat/rooms/delete.ts | 4 +-- .../src/server/api/endpoints/clips/create.ts | 4 +-- .../src/server/api/endpoints/clips/list.ts | 4 +-- .../api/endpoints/clips/my-favorites.ts | 4 +-- .../src/server/api/endpoints/clips/notes.ts | 4 +-- .../src/server/api/endpoints/clips/show.ts | 4 +-- .../src/server/api/endpoints/clips/update.ts | 4 +-- .../api/endpoints/drive/files/delete.ts | 4 +-- .../server/api/endpoints/drive/files/show.ts | 4 +-- .../api/endpoints/drive/files/update.ts | 4 +-- .../api/endpoints/federation/followers.ts | 4 +-- .../api/endpoints/federation/following.ts | 4 +-- .../api/endpoints/federation/instances.ts | 4 +-- .../api/endpoints/federation/show-instance.ts | 4 +-- .../server/api/endpoints/federation/stats.ts | 6 ++--- .../server/api/endpoints/federation/users.ts | 4 +-- .../src/server/api/endpoints/flash/create.ts | 4 +-- .../src/server/api/endpoints/flash/delete.ts | 4 +-- .../server/api/endpoints/flash/featured.ts | 4 +-- .../server/api/endpoints/flash/my-likes.ts | 4 +-- .../src/server/api/endpoints/flash/my.ts | 4 +-- .../src/server/api/endpoints/flash/show.ts | 4 +-- .../server/api/endpoints/following/create.ts | 4 +-- .../server/api/endpoints/following/delete.ts | 6 ++--- .../api/endpoints/following/invalidate.ts | 4 +-- .../endpoints/following/requests/cancel.ts | 4 +-- .../api/endpoints/following/requests/list.ts | 4 +-- .../api/endpoints/following/requests/sent.ts | 4 +-- .../server/api/endpoints/following/update.ts | 4 +-- .../server/api/endpoints/gallery/featured.ts | 4 +-- .../server/api/endpoints/gallery/popular.ts | 4 +-- .../src/server/api/endpoints/gallery/posts.ts | 4 +-- .../api/endpoints/gallery/posts/create.ts | 4 +-- .../api/endpoints/gallery/posts/delete.ts | 4 +-- .../api/endpoints/gallery/posts/show.ts | 4 +-- .../api/endpoints/gallery/posts/update.ts | 4 +-- .../server/api/endpoints/i/2fa/key-done.ts | 3 +-- .../api/endpoints/i/2fa/password-less.ts | 3 +-- .../server/api/endpoints/i/2fa/remove-key.ts | 3 +-- .../server/api/endpoints/i/2fa/unregister.ts | 3 +-- .../server/api/endpoints/i/2fa/update-key.ts | 3 +-- .../src/server/api/endpoints/i/apps.ts | 4 +-- .../src/server/api/endpoints/i/favorites.ts | 4 +-- .../server/api/endpoints/i/gallery/likes.ts | 4 +-- .../server/api/endpoints/i/gallery/posts.ts | 4 +-- .../api/endpoints/i/notifications-grouped.ts | 4 +-- .../server/api/endpoints/i/notifications.ts | 4 +-- .../src/server/api/endpoints/i/page-likes.ts | 4 +-- .../src/server/api/endpoints/i/pages.ts | 4 +-- .../backend/src/server/api/endpoints/i/pin.ts | 3 +-- .../api/endpoints/i/shared-access/list.ts | 4 +-- .../src/server/api/endpoints/i/unpin.ts | 3 +-- .../server/api/endpoints/i/update-email.ts | 3 +-- .../src/server/api/endpoints/i/update.ts | 1 - .../src/server/api/endpoints/invite/create.ts | 4 +-- .../src/server/api/endpoints/invite/delete.ts | 4 +-- .../src/server/api/endpoints/invite/list.ts | 4 +-- .../src/server/api/endpoints/mute/list.ts | 4 +-- .../api/endpoints/notes/bubble-timeline.ts | 4 +-- .../server/api/endpoints/notes/children.ts | 4 +-- .../src/server/api/endpoints/notes/clips.ts | 4 +-- .../api/endpoints/notes/conversation.ts | 6 ++--- .../src/server/api/endpoints/notes/create.ts | 4 +-- .../src/server/api/endpoints/notes/delete.ts | 4 +-- .../src/server/api/endpoints/notes/edit.ts | 4 +-- .../server/api/endpoints/notes/featured.ts | 4 +-- .../server/api/endpoints/notes/following.ts | 4 +-- .../api/endpoints/notes/global-timeline.ts | 4 +-- .../api/endpoints/notes/hybrid-timeline.ts | 5 ++-- .../api/endpoints/notes/local-timeline.ts | 5 ++-- .../server/api/endpoints/notes/mentions.ts | 4 +-- .../endpoints/notes/polls/recommendation.ts | 4 +-- .../api/endpoints/notes/polls/refresh.ts | 4 +-- .../server/api/endpoints/notes/reactions.ts | 4 +-- .../src/server/api/endpoints/notes/renotes.ts | 4 +-- .../src/server/api/endpoints/notes/replies.ts | 4 +-- .../api/endpoints/notes/schedule/list.ts | 11 ++++---- .../api/endpoints/notes/search-by-tag.ts | 4 +-- .../src/server/api/endpoints/notes/search.ts | 4 +-- .../src/server/api/endpoints/notes/show.ts | 4 +-- .../server/api/endpoints/notes/timeline.ts | 4 +-- .../api/endpoints/notes/user-list-timeline.ts | 5 ++-- .../src/server/api/endpoints/page-push.ts | 3 +-- .../src/server/api/endpoints/pages/create.ts | 4 +-- .../src/server/api/endpoints/pages/delete.ts | 4 +-- .../server/api/endpoints/pages/featured.ts | 4 +-- .../server/api/endpoints/renote-mute/list.ts | 4 +-- .../api/endpoints/reversi/invitations.ts | 4 +-- .../src/server/api/endpoints/roles/notes.ts | 4 +-- .../src/server/api/endpoints/users/clips.ts | 4 +-- .../api/endpoints/users/featured-notes.ts | 4 +-- .../src/server/api/endpoints/users/flashs.ts | 4 +-- .../server/api/endpoints/users/followers.ts | 6 ++--- .../server/api/endpoints/users/following.ts | 6 ++--- .../api/endpoints/users/gallery/posts.ts | 4 +-- .../endpoints/users/lists/get-memberships.ts | 4 +-- .../src/server/api/endpoints/users/notes.ts | 5 ++-- .../src/server/api/endpoints/users/pages.ts | 4 +-- .../server/api/endpoints/users/reactions.ts | 6 ++--- .../users/search-by-username-and-host.ts | 4 +-- .../src/server/api/endpoints/users/search.ts | 4 +-- .../src/server/api/endpoints/users/show.ts | 4 +-- .../backend/src/server/api/stream/channel.ts | 4 --- .../src/server/api/stream/channels/antenna.ts | 2 +- .../src/server/web/ClientServerService.ts | 2 +- 166 files changed, 377 insertions(+), 472 deletions(-) diff --git a/packages/backend/src/core/ChatService.ts b/packages/backend/src/core/ChatService.ts index 5954274036..62cf04e00e 100644 --- a/packages/backend/src/core/ChatService.ts +++ b/packages/backend/src/core/ChatService.ts @@ -16,7 +16,7 @@ import { ChatEntityService } from '@/core/entities/ChatEntityService.js'; import { ApRendererService } from '@/core/activitypub/ApRendererService.js'; import { PushNotificationService } from '@/core/PushNotificationService.js'; import { bindThis } from '@/decorators.js'; -import type { ChatApprovalsRepository, ChatMessagesRepository, ChatRoomInvitationsRepository, ChatRoomMembershipsRepository, ChatRoomsRepository, MiAccessToken, MiChatMessage, MiChatRoom, MiChatRoomMembership, MiDriveFile, MiUser, MutingsRepository, UsersRepository } from '@/models/_.js'; +import type { ChatApprovalsRepository, ChatMessagesRepository, ChatRoomInvitationsRepository, ChatRoomMembershipsRepository, ChatRoomsRepository, MiChatMessage, MiChatRoom, MiChatRoomMembership, MiDriveFile, MiUser, MutingsRepository, UsersRepository } from '@/models/_.js'; import { UserBlockingService } from '@/core/UserBlockingService.js'; import { QueryService } from '@/core/QueryService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -342,11 +342,11 @@ export class ChatService { } @bindThis - public async hasPermissionToViewRoomTimeline(meId: MiUser['id'], room: MiChatRoom, token?: MiAccessToken | null) { + public async hasPermissionToViewRoomTimeline(meId: MiUser['id'], room: MiChatRoom) { if (await this.isRoomMember(room, meId)) { return true; } else { - const iAmModerator = await this.roleService.isModerator({ id: meId }, token); + const iAmModerator = await this.roleService.isModerator({ id: meId }); if (iAmModerator) { return true; } @@ -563,12 +563,12 @@ export class ChatService { } @bindThis - public async hasPermissionToDeleteRoom(meId: MiUser['id'], room: MiChatRoom, token?: MiAccessToken | null) { + public async hasPermissionToDeleteRoom(meId: MiUser['id'], room: MiChatRoom) { if (room.ownerId === meId) { return true; } - const iAmModerator = await this.roleService.isModerator({ id: meId }, token); + const iAmModerator = await this.roleService.isModerator({ id: meId }); if (iAmModerator) { return true; } diff --git a/packages/backend/src/core/FanoutTimelineEndpointService.ts b/packages/backend/src/core/FanoutTimelineEndpointService.ts index 56766d869e..ddb0ddb7d2 100644 --- a/packages/backend/src/core/FanoutTimelineEndpointService.ts +++ b/packages/backend/src/core/FanoutTimelineEndpointService.ts @@ -10,7 +10,7 @@ import type { MiUser } from '@/models/User.js'; import type { MiNote } from '@/models/Note.js'; import type { MiMeta } from '@/models/Meta.js'; import { Packed } from '@/misc/json-schema.js'; -import type { MiAccessToken, NotesRepository } from '@/models/_.js'; +import type { NotesRepository } from '@/models/_.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { FanoutTimelineName, FanoutTimelineService } from '@/core/FanoutTimelineService.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -28,7 +28,6 @@ type TimelineOptions = { limit: number, allowPartial: boolean, me?: { id: MiUser['id'] } | undefined | null, - token?: MiAccessToken | null, useDbFallback: boolean, redisTimelines: FanoutTimelineName[], noteFilter?: (note: MiNote) => boolean, @@ -65,7 +64,7 @@ export class FanoutTimelineEndpointService { @bindThis async timeline(ps: TimelineOptions): Promise[]> { - return await this.noteEntityService.packMany(await this.getMiNotes(ps), ps.me, ps.token); + return await this.noteEntityService.packMany(await this.getMiNotes(ps), ps.me); } @bindThis diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index 1656fc1ff0..ea74d3a84e 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -650,7 +650,7 @@ export class NoteCreateService implements OnApplicationShutdown { if (this.userEntityService.isLocalUser(user)) this.activeUsersChart.write(user); // Pack the note - const noteObj = await this.noteEntityService.pack(note, null, null, { skipHide: true, withReactionAndUserPairCache: true }); + const noteObj = await this.noteEntityService.pack(note, null, { skipHide: true, withReactionAndUserPairCache: true }); this.globalEventService.publishNotesStream(noteObj); @@ -856,7 +856,7 @@ export class NoteCreateService implements OnApplicationShutdown { continue; } - const detailPackedNote = await this.noteEntityService.pack(note, u, null, { + const detailPackedNote = await this.noteEntityService.pack(note, u, { detail: true, }); diff --git a/packages/backend/src/core/NoteEditService.ts b/packages/backend/src/core/NoteEditService.ts index bc091b8d97..9e8bb8b4fd 100644 --- a/packages/backend/src/core/NoteEditService.ts +++ b/packages/backend/src/core/NoteEditService.ts @@ -618,7 +618,7 @@ export class NoteEditService implements OnApplicationShutdown { if (this.userEntityService.isLocalUser(user)) this.activeUsersChart.write(user); // Pack the note - const noteObj = await this.noteEntityService.pack(note, null, null, { skipHide: true, withReactionAndUserPairCache: true }); + const noteObj = await this.noteEntityService.pack(note, null, { skipHide: true, withReactionAndUserPairCache: true }); this.globalEventService.publishNoteStream(note.id, 'updated', { cw: note.cw, text: note.text ?? '', diff --git a/packages/backend/src/core/NotificationService.ts b/packages/backend/src/core/NotificationService.ts index 65a3a89da4..2ce7bdb5a9 100644 --- a/packages/backend/src/core/NotificationService.ts +++ b/packages/backend/src/core/NotificationService.ts @@ -177,7 +177,7 @@ export class NotificationService implements OnApplicationShutdown { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition } while (true); - const packed = await this.notificationEntityService.pack(notification, notifieeId, undefined, {}); + const packed = await this.notificationEntityService.pack(notification, notifieeId, {}); if (packed == null) return null; diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts index f047afaacd..6429e304e5 100644 --- a/packages/backend/src/core/RoleService.ts +++ b/packages/backend/src/core/RoleService.ts @@ -8,7 +8,6 @@ import * as Redis from 'ioredis'; import { In } from 'typeorm'; import { ModuleRef } from '@nestjs/core'; import type { - MiAccessToken, MiMeta, MiRole, MiRoleAssignment, @@ -513,16 +512,14 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit { } @bindThis - public async isModerator(user: { id: MiUser['id'] } | null, token?: MiAccessToken | null): Promise { + public async isModerator(user: { id: MiUser['id'] } | null): Promise { if (user == null) return false; - if (token?.rank != null && token.rank !== 'admin' && token.rank !== 'mod') return false; return (this.meta.rootUserId === user.id) || (await this.getUserRoles(user.id)).some(r => r.isModerator || r.isAdministrator); } @bindThis - public async isAdministrator(user: { id: MiUser['id'] } | null, token?: MiAccessToken | null): Promise { + public async isAdministrator(user: { id: MiUser['id'] } | null): Promise { if (user == null) return false; - if (token?.rank != null && token.rank !== 'admin') return false; return (this.meta.rootUserId === user.id) || (await this.getUserRoles(user.id)).some(r => r.isAdministrator); } diff --git a/packages/backend/src/core/UserSearchService.ts b/packages/backend/src/core/UserSearchService.ts index 441d9ccfcc..4be7bd9bdb 100644 --- a/packages/backend/src/core/UserSearchService.ts +++ b/packages/backend/src/core/UserSearchService.ts @@ -6,7 +6,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets, SelectQueryBuilder } from 'typeorm'; import { DI } from '@/di-symbols.js'; -import { type FollowingsRepository, MiAccessToken, MiUser, type MutingsRepository, type UserProfilesRepository, type UsersRepository } from '@/models/_.js'; +import { type FollowingsRepository, MiUser, type MutingsRepository, type UserProfilesRepository, type UsersRepository } from '@/models/_.js'; import { bindThis } from '@/decorators.js'; import { sqlLikeEscape } from '@/misc/sql-like-escape.js'; import type { Config } from '@/config.js'; @@ -63,7 +63,6 @@ export class UserSearchService { * @param params 検索条件. * @param opts 関数の動作を制御するオプション. * @param me 検索を実行するユーザの情報. 未ログインの場合は指定しない. - * @param token * @see {@link UserSearchService#buildSearchUserQueries} * @see {@link UserSearchService#buildSearchUserNoLoginQueries} */ @@ -79,7 +78,6 @@ export class UserSearchService { detail?: boolean, }, me?: MiUser | null, - token?: MiAccessToken | null, ): Promise[]> { const queries = me ? this.buildSearchUserQueries(me, params) : this.buildSearchUserNoLoginQueries(params); @@ -102,7 +100,7 @@ export class UserSearchService { return this.userEntityService.packMany<'UserLite' | 'UserDetailed'>( [...resultSet].slice(0, limit), me, - { schema: opts?.detail ? 'UserDetailed' : 'UserLite', token }, + { schema: opts?.detail ? 'UserDetailed' : 'UserLite' }, ); } diff --git a/packages/backend/src/core/entities/AbuseUserReportEntityService.ts b/packages/backend/src/core/entities/AbuseUserReportEntityService.ts index aef8365d62..c1d877aa12 100644 --- a/packages/backend/src/core/entities/AbuseUserReportEntityService.ts +++ b/packages/backend/src/core/entities/AbuseUserReportEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { AbuseUserReportsRepository, InstancesRepository, MiAccessToken, MiInstance, MiUser } from '@/models/_.js'; +import type { AbuseUserReportsRepository, InstancesRepository, MiInstance, MiUser } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { MiAbuseUserReport } from '@/models/AbuseUserReport.js'; import { bindThis } from '@/decorators.js'; @@ -39,7 +39,6 @@ export class AbuseUserReportEntityService { packedAssignee?: Packed<'UserDetailedNotMe'>, }, me?: MiUser | null, - token?: MiAccessToken | null, ) { const report = typeof src === 'object' ? src : await this.abuseUserReportsRepository.findOneByOrFail({ id: src }); @@ -54,24 +53,21 @@ export class AbuseUserReportEntityService { assigneeId: report.assigneeId, reporter: hint?.packedReporter ?? this.userEntityService.pack(report.reporter ?? report.reporterId, me, { schema: 'UserDetailedNotMe', - token, }), targetUser: hint?.packedTargetUser ?? this.userEntityService.pack(report.targetUser ?? report.targetUserId, me, { schema: 'UserDetailedNotMe', - token, }), // return hint, or pack by relation, or fetch and pack by id, or null targetInstance: hint?.packedTargetInstance ?? ( report.targetUserInstance - ? this.instanceEntityService.pack(report.targetUserInstance, me, token) + ? this.instanceEntityService.pack(report.targetUserInstance, me) : report.targetUserHost ? this.instancesRepository.findOneBy({ host: report.targetUserHost }).then(instance => instance - ? this.instanceEntityService.pack(instance, me, token) + ? this.instanceEntityService.pack(instance, me) : null) : null), assignee: report.assigneeId ? hint?.packedAssignee ?? this.userEntityService.pack(report.assignee ?? report.assigneeId, me, { schema: 'UserDetailedNotMe', - token, }) : null, forwarded: report.forwarded, resolvedAs: report.resolvedAs, @@ -83,7 +79,6 @@ export class AbuseUserReportEntityService { public async packMany( reports: MiAbuseUserReport[], me?: MiUser | null, - token?: MiAccessToken | null, ) { const _reporters = reports.map(({ reporter, reporterId }) => reporter ?? reporterId); const _targetUsers = reports.map(({ targetUser, targetUserId }) => targetUser ?? targetUserId); @@ -91,12 +86,12 @@ export class AbuseUserReportEntityService { const _userMap = await this.userEntityService.packMany( [..._reporters, ..._targetUsers, ..._assignees], me, - { schema: 'UserDetailedNotMe', token }, + { schema: 'UserDetailedNotMe' }, ).then(users => new Map(users.map(u => [u.id, u]))); const _targetInstances = reports .map(({ targetUserInstance, targetUserHost }) => targetUserInstance ?? targetUserHost) .filter((i): i is MiInstance | string => i != null); - const _instanceMap = await this.instanceEntityService.packMany(await this.instanceEntityService.fetchInstancesByHost(_targetInstances), me, token) + const _instanceMap = await this.instanceEntityService.packMany(await this.instanceEntityService.fetchInstancesByHost(_targetInstances), me) .then(instances => new Map(instances.map(i => [i.host, i]))); return Promise.all( reports.map(report => { @@ -104,7 +99,7 @@ export class AbuseUserReportEntityService { const packedTargetUser = _userMap.get(report.targetUserId); const packedTargetInstance = report.targetUserHost ? _instanceMap.get(report.targetUserHost) : undefined; const packedAssignee = report.assigneeId != null ? _userMap.get(report.assigneeId) : undefined; - return this.pack(report, { packedReporter, packedTargetUser, packedAssignee, packedTargetInstance }, me, token); + return this.pack(report, { packedReporter, packedTargetUser, packedAssignee, packedTargetInstance }, me); }), ); } diff --git a/packages/backend/src/core/entities/BlockingEntityService.ts b/packages/backend/src/core/entities/BlockingEntityService.ts index 1432c0b613..1e699032e2 100644 --- a/packages/backend/src/core/entities/BlockingEntityService.ts +++ b/packages/backend/src/core/entities/BlockingEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { BlockingsRepository, MiAccessToken } from '@/models/_.js'; +import type { BlockingsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { MiBlocking } from '@/models/Blocking.js'; @@ -29,7 +29,6 @@ export class BlockingEntityService { public async pack( src: MiBlocking['id'] | MiBlocking, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hint?: { blockee?: Packed<'UserDetailedNotMe'>, }, @@ -42,7 +41,6 @@ export class BlockingEntityService { blockeeId: blocking.blockeeId, blockee: hint?.blockee ?? this.userEntityService.pack(blocking.blockeeId, me, { schema: 'UserDetailedNotMe', - token, }), }); } @@ -51,11 +49,10 @@ export class BlockingEntityService { public async packMany( blockings: MiBlocking[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { const _blockees = blockings.map(({ blockee, blockeeId }) => blockee ?? blockeeId); - const _userMap = await this.userEntityService.packMany(_blockees, me, { schema: 'UserDetailedNotMe', token }) + const _userMap = await this.userEntityService.packMany(_blockees, me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(blockings.map(blocking => this.pack(blocking, me, token, { blockee: _userMap.get(blocking.blockeeId) }))); + return Promise.all(blockings.map(blocking => this.pack(blocking, me, { blockee: _userMap.get(blocking.blockeeId) }))); } } diff --git a/packages/backend/src/core/entities/ChannelEntityService.ts b/packages/backend/src/core/entities/ChannelEntityService.ts index 2b34a2fd92..1ba7ca8e57 100644 --- a/packages/backend/src/core/entities/ChannelEntityService.ts +++ b/packages/backend/src/core/entities/ChannelEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { ChannelFavoritesRepository, ChannelFollowingsRepository, ChannelsRepository, DriveFilesRepository, MiAccessToken, NotesRepository } from '@/models/_.js'; +import type { ChannelFavoritesRepository, ChannelFollowingsRepository, ChannelsRepository, DriveFilesRepository, NotesRepository } from '@/models/_.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; import type { MiUser } from '@/models/User.js'; @@ -44,7 +44,6 @@ export class ChannelEntityService { public async pack( src: MiChannel['id'] | MiChannel, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, detailed?: boolean, ): Promise> { const channel = typeof src === 'object' ? src : await this.channelsRepository.findOneByOrFail({ id: src }); @@ -95,7 +94,7 @@ export class ChannelEntityService { } : {}), ...(detailed ? { - pinnedNotes: (await this.noteEntityService.packMany(pinnedNotes, me, token)).sort((a, b) => channel.pinnedNoteIds.indexOf(a.id) - channel.pinnedNoteIds.indexOf(b.id)), + pinnedNotes: (await this.noteEntityService.packMany(pinnedNotes, me)).sort((a, b) => channel.pinnedNoteIds.indexOf(a.id) - channel.pinnedNoteIds.indexOf(b.id)), } : {}), }; } diff --git a/packages/backend/src/core/entities/ClipEntityService.ts b/packages/backend/src/core/entities/ClipEntityService.ts index e866ca008b..d915645906 100644 --- a/packages/backend/src/core/entities/ClipEntityService.ts +++ b/packages/backend/src/core/entities/ClipEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { ClipNotesRepository, ClipFavoritesRepository, ClipsRepository, MiUser, MiAccessToken } from '@/models/_.js'; +import type { ClipNotesRepository, ClipFavoritesRepository, ClipsRepository, MiUser } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; @@ -35,7 +35,6 @@ export class ClipEntityService { public async pack( src: MiClip['id'] | MiClip, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hint?: { packedUser?: Packed<'UserLite'> }, @@ -48,7 +47,7 @@ export class ClipEntityService { createdAt: this.idService.parse(clip.id).date.toISOString(), lastClippedAt: clip.lastClippedAt ? clip.lastClippedAt.toISOString() : null, userId: clip.userId, - user: hint?.packedUser ?? this.userEntityService.pack(clip.user ?? clip.userId, me, { token }), + user: hint?.packedUser ?? this.userEntityService.pack(clip.user ?? clip.userId), name: clip.name, description: clip.description, isPublic: clip.isPublic, @@ -62,12 +61,11 @@ export class ClipEntityService { public async packMany( clips: MiClip[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const _users = clips.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { token }) + const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(clips.map(clip => this.pack(clip, me, token, { packedUser: _userMap.get(clip.userId) }))); + return Promise.all(clips.map(clip => this.pack(clip, me, { packedUser: _userMap.get(clip.userId) }))); } } diff --git a/packages/backend/src/core/entities/FlashEntityService.ts b/packages/backend/src/core/entities/FlashEntityService.ts index 5c3b47448f..7b0150f5b6 100644 --- a/packages/backend/src/core/entities/FlashEntityService.ts +++ b/packages/backend/src/core/entities/FlashEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { FlashLikesRepository, FlashsRepository, MiAccessToken } from '@/models/_.js'; +import type { FlashLikesRepository, FlashsRepository } from '@/models/_.js'; import type { Packed } from '@/misc/json-schema.js'; import type { MiUser } from '@/models/User.js'; import type { MiFlash } from '@/models/Flash.js'; @@ -29,7 +29,6 @@ export class FlashEntityService { public async pack( src: MiFlash['id'] | MiFlash, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hint?: { packedUser?: Packed<'UserLite'>, likedFlashIds?: MiFlash['id'][], @@ -39,7 +38,7 @@ export class FlashEntityService { const flash = typeof src === 'object' ? src : await this.flashsRepository.findOneByOrFail({ id: src }); // { schema: 'UserDetailed' } すると無限ループするので注意 - const user = hint?.packedUser ?? await this.userEntityService.pack(flash.user ?? flash.userId, me, { token }); + const user = hint?.packedUser ?? await this.userEntityService.pack(flash.user ?? flash.userId, me); let isLiked = undefined; if (meId) { @@ -67,10 +66,9 @@ export class FlashEntityService { public async packMany( flashes: MiFlash[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const _users = flashes.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { token }) + const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); const _likedFlashIds = me ? await this.flashLikesRepository.createQueryBuilder('flashLike') @@ -80,7 +78,7 @@ export class FlashEntityService { .then(likes => [...new Set(likes.map(like => like.flashLike_flashId))]) : []; return Promise.all( - flashes.map(flash => this.pack(flash, me, token, { + flashes.map(flash => this.pack(flash, me, { packedUser: _userMap.get(flash.userId), likedFlashIds: _likedFlashIds, })), diff --git a/packages/backend/src/core/entities/FlashLikeEntityService.ts b/packages/backend/src/core/entities/FlashLikeEntityService.ts index d1e657659a..6e0b9d6e11 100644 --- a/packages/backend/src/core/entities/FlashLikeEntityService.ts +++ b/packages/backend/src/core/entities/FlashLikeEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { FlashLikesRepository, MiAccessToken } from '@/models/_.js'; +import type { FlashLikesRepository } from '@/models/_.js'; import type { } from '@/models/Blocking.js'; import type { MiUser } from '@/models/User.js'; import type { MiFlashLike } from '@/models/FlashLike.js'; @@ -26,13 +26,12 @@ export class FlashLikeEntityService { public async pack( src: MiFlashLike['id'] | MiFlashLike, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const like = typeof src === 'object' ? src : await this.flashLikesRepository.findOneByOrFail({ id: src }); return { id: like.id, - flash: await this.flashEntityService.pack(like.flash ?? like.flashId, me, token), + flash: await this.flashEntityService.pack(like.flash ?? like.flashId, me), }; } @@ -40,9 +39,8 @@ export class FlashLikeEntityService { public packMany( likes: any[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { - return Promise.all(likes.map(x => this.pack(x, me, token))); + return Promise.all(likes.map(x => this.pack(x, me))); } } diff --git a/packages/backend/src/core/entities/FollowRequestEntityService.ts b/packages/backend/src/core/entities/FollowRequestEntityService.ts index 54eb9e906d..0101ec8aa7 100644 --- a/packages/backend/src/core/entities/FollowRequestEntityService.ts +++ b/packages/backend/src/core/entities/FollowRequestEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { FollowRequestsRepository, MiAccessToken } from '@/models/_.js'; +import type { FollowRequestsRepository } from '@/models/_.js'; import type { } from '@/models/Blocking.js'; import type { MiUser } from '@/models/User.js'; import type { MiFollowRequest } from '@/models/FollowRequest.js'; @@ -27,7 +27,6 @@ export class FollowRequestEntityService { public async pack( src: MiFollowRequest['id'] | MiFollowRequest, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hint?: { packedFollower?: Packed<'UserLite'>, packedFollowee?: Packed<'UserLite'>, @@ -37,8 +36,8 @@ export class FollowRequestEntityService { return { id: request.id, - follower: hint?.packedFollower ?? await this.userEntityService.pack(request.followerId, me, { token }), - followee: hint?.packedFollowee ?? await this.userEntityService.pack(request.followeeId, me, { token }), + follower: hint?.packedFollower ?? await this.userEntityService.pack(request.followerId, me), + followee: hint?.packedFollowee ?? await this.userEntityService.pack(request.followeeId, me), }; } @@ -46,17 +45,16 @@ export class FollowRequestEntityService { public async packMany( requests: MiFollowRequest[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const _followers = requests.map(({ follower, followerId }) => follower ?? followerId); const _followees = requests.map(({ followee, followeeId }) => followee ?? followeeId); - const _userMap = await this.userEntityService.packMany([..._followers, ..._followees], me, { token }) + const _userMap = await this.userEntityService.packMany([..._followers, ..._followees], me) .then(users => new Map(users.map(u => [u.id, u]))); return Promise.all( requests.map(req => { const packedFollower = _userMap.get(req.followerId); const packedFollowee = _userMap.get(req.followeeId); - return this.pack(req, me, token, { packedFollower, packedFollowee }); + return this.pack(req, me, { packedFollower, packedFollowee }); }), ); } diff --git a/packages/backend/src/core/entities/FollowingEntityService.ts b/packages/backend/src/core/entities/FollowingEntityService.ts index afb8260e85..d54c954bf2 100644 --- a/packages/backend/src/core/entities/FollowingEntityService.ts +++ b/packages/backend/src/core/entities/FollowingEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { FollowingsRepository, MiAccessToken } from '@/models/_.js'; +import type { FollowingsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import { MiBlocking } from '@/models/Blocking.js'; @@ -76,23 +76,23 @@ export class FollowingEntityService { } @bindThis - public async getFollowing(me: MiLocalUser, token: MiAccessToken | null | undefined, params: FollowsQueryParams) { - return await this.getFollows(me, token, params, 'following.followerHost = :host'); + public async getFollowing(me: MiLocalUser, params: FollowsQueryParams) { + return await this.getFollows(me, params, 'following.followerHost = :host'); } @bindThis - public async getFollowers(me: MiLocalUser, token: MiAccessToken | null | undefined, params: FollowsQueryParams) { - return await this.getFollows(me, token, params, 'following.followeeHost = :host'); + public async getFollowers(me: MiLocalUser, params: FollowsQueryParams) { + return await this.getFollows(me, params, 'following.followeeHost = :host'); } - private async getFollows(me: MiLocalUser, token: MiAccessToken | null | undefined, params: FollowsQueryParams, condition: string) { + private async getFollows(me: MiLocalUser, params: FollowsQueryParams, condition: string) { const builder = this.followingsRepository.createQueryBuilder('following'); const query = this.queryService .makePaginationQuery(builder, params.sinceId, params.untilId) .andWhere(condition, { host: params.host }) .limit(params.limit); - if (!await this.roleService.isModerator(me, token)) { + if (!await this.roleService.isModerator(me)) { query.setParameter('me', me.id); // Make sure that the followee doesn't block us, if their profile will be included. @@ -119,14 +119,13 @@ export class FollowingEntityService { } const followings = await query.getMany(); - return await this.packMany(followings, me, token, { populateFollowee: params.includeFollowee, populateFollower: params.includeFollower }); + return await this.packMany(followings, me, { populateFollowee: params.includeFollowee, populateFollower: params.includeFollower }); } @bindThis public async pack( src: MiFollowing['id'] | MiFollowing, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, opts?: { populateFollowee?: boolean; populateFollower?: boolean; @@ -147,11 +146,9 @@ export class FollowingEntityService { followerId: following.followerId, followee: opts.populateFollowee ? hint?.packedFollowee ?? this.userEntityService.pack(following.followee ?? following.followeeId, me, { schema: 'UserDetailedNotMe', - token, }) : undefined, follower: opts.populateFollower ? hint?.packedFollower ?? this.userEntityService.pack(following.follower ?? following.followerId, me, { schema: 'UserDetailedNotMe', - token, }) : undefined, }); } @@ -160,7 +157,6 @@ export class FollowingEntityService { public async packMany( followings: MiFollowing[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, opts?: { populateFollowee?: boolean; populateFollower?: boolean; @@ -168,13 +164,13 @@ export class FollowingEntityService { ) { const _followees = opts?.populateFollowee ? followings.map(({ followee, followeeId }) => followee ?? followeeId) : []; const _followers = opts?.populateFollower ? followings.map(({ follower, followerId }) => follower ?? followerId) : []; - const _userMap = await this.userEntityService.packMany([..._followees, ..._followers], me, { schema: 'UserDetailedNotMe', token }) + const _userMap = await this.userEntityService.packMany([..._followees, ..._followers], me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); return Promise.all( followings.map(following => { const packedFollowee = opts?.populateFollowee ? _userMap.get(following.followeeId) : undefined; const packedFollower = opts?.populateFollower ? _userMap.get(following.followerId) : undefined; - return this.pack(following, me, token, opts, { packedFollowee, packedFollower }); + return this.pack(following, me, opts, { packedFollowee, packedFollower }); }), ); } diff --git a/packages/backend/src/core/entities/GalleryLikeEntityService.ts b/packages/backend/src/core/entities/GalleryLikeEntityService.ts index 541c775182..f199a81b4d 100644 --- a/packages/backend/src/core/entities/GalleryLikeEntityService.ts +++ b/packages/backend/src/core/entities/GalleryLikeEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { GalleryLikesRepository, MiAccessToken } from '@/models/_.js'; +import type { GalleryLikesRepository } from '@/models/_.js'; import type { } from '@/models/Blocking.js'; import type { MiGalleryLike } from '@/models/GalleryLike.js'; import { bindThis } from '@/decorators.js'; @@ -25,13 +25,12 @@ export class GalleryLikeEntityService { public async pack( src: MiGalleryLike['id'] | MiGalleryLike, me?: any, - token?: MiAccessToken | null, ) { const like = typeof src === 'object' ? src : await this.galleryLikesRepository.findOneByOrFail({ id: src }); return { id: like.id, - post: await this.galleryPostEntityService.pack(like.post ?? like.postId, me, token), + post: await this.galleryPostEntityService.pack(like.post ?? like.postId, me), }; } @@ -39,9 +38,8 @@ export class GalleryLikeEntityService { public packMany( likes: any[], me: any, - token?: MiAccessToken | null, ) { - return Promise.all(likes.map(x => this.pack(x, me, token))); + return Promise.all(likes.map(x => this.pack(x, me))); } } diff --git a/packages/backend/src/core/entities/GalleryPostEntityService.ts b/packages/backend/src/core/entities/GalleryPostEntityService.ts index 0fdefd24cc..9746a4c1af 100644 --- a/packages/backend/src/core/entities/GalleryPostEntityService.ts +++ b/packages/backend/src/core/entities/GalleryPostEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { GalleryLikesRepository, GalleryPostsRepository, MiAccessToken } from '@/models/_.js'; +import type { GalleryLikesRepository, GalleryPostsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; @@ -35,7 +35,6 @@ export class GalleryPostEntityService { public async pack( src: MiGalleryPost['id'] | MiGalleryPost, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hint?: { packedUser?: Packed<'UserLite'> }, @@ -48,7 +47,7 @@ export class GalleryPostEntityService { createdAt: this.idService.parse(post.id).date.toISOString(), updatedAt: post.updatedAt.toISOString(), userId: post.userId, - user: hint?.packedUser ?? this.userEntityService.pack(post.user ?? post.userId, me, { token }), + user: hint?.packedUser ?? this.userEntityService.pack(post.user ?? post.userId, me), title: post.title, description: post.description, fileIds: post.fileIds, @@ -65,12 +64,11 @@ export class GalleryPostEntityService { public async packMany( posts: MiGalleryPost[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const _users = posts.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { token }) + const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(posts.map(post => this.pack(post, me, token, { packedUser: _userMap.get(post.userId) }))); + return Promise.all(posts.map(post => this.pack(post, me, { packedUser: _userMap.get(post.userId) }))); } } diff --git a/packages/backend/src/core/entities/InstanceEntityService.ts b/packages/backend/src/core/entities/InstanceEntityService.ts index c5caffa872..1225b6484a 100644 --- a/packages/backend/src/core/entities/InstanceEntityService.ts +++ b/packages/backend/src/core/entities/InstanceEntityService.ts @@ -12,7 +12,7 @@ import { UtilityService } from '@/core/UtilityService.js'; import { RoleService } from '@/core/RoleService.js'; import { MiUser } from '@/models/User.js'; import { DI } from '@/di-symbols.js'; -import type { InstancesRepository, MiAccessToken, MiMeta } from '@/models/_.js'; +import type { InstancesRepository, MiMeta } from '@/models/_.js'; @Injectable() export class InstanceEntityService { @@ -33,9 +33,8 @@ export class InstanceEntityService { public async pack( instance: MiInstance, me?: { id: MiUser['id']; } | null | undefined, - token?: MiAccessToken | null, ): Promise> { - const iAmModerator = me ? await this.roleService.isModerator(me as MiUser, token) : false; + const iAmModerator = me ? await this.roleService.isModerator(me as MiUser) : false; const softwareSuspended = this.utilityService.isDeliverSuspendedSoftware(instance); return { @@ -76,9 +75,8 @@ export class InstanceEntityService { public packMany( instances: MiInstance[], me?: { id: MiUser['id']; } | null | undefined, - token?: MiAccessToken | null, ) { - return Promise.all(instances.map(x => this.pack(x, me, token))); + return Promise.all(instances.map(x => this.pack(x, me))); } @bindThis diff --git a/packages/backend/src/core/entities/InviteCodeEntityService.ts b/packages/backend/src/core/entities/InviteCodeEntityService.ts index 164b520e99..5d3e823a2a 100644 --- a/packages/backend/src/core/entities/InviteCodeEntityService.ts +++ b/packages/backend/src/core/entities/InviteCodeEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, RegistrationTicketsRepository } from '@/models/_.js'; +import type { RegistrationTicketsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { MiUser } from '@/models/User.js'; @@ -29,7 +29,6 @@ export class InviteCodeEntityService { public async pack( src: MiRegistrationTicket['id'] | MiRegistrationTicket, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hints?: { packedCreatedBy?: Packed<'UserLite'>, packedUsedBy?: Packed<'UserLite'>, @@ -47,8 +46,8 @@ export class InviteCodeEntityService { code: target.code, expiresAt: target.expiresAt ? target.expiresAt.toISOString() : null, createdAt: this.idService.parse(target.id).date.toISOString(), - createdBy: target.createdBy ? hints?.packedCreatedBy ?? await this.userEntityService.pack(target.createdBy, me, { token }) : null, - usedBy: target.usedBy ? hints?.packedUsedBy ?? await this.userEntityService.pack(target.usedBy, me, { token }) : null, + createdBy: target.createdBy ? hints?.packedCreatedBy ?? await this.userEntityService.pack(target.createdBy, me) : null, + usedBy: target.usedBy ? hints?.packedUsedBy ?? await this.userEntityService.pack(target.usedBy, me) : null, usedAt: target.usedAt ? target.usedAt.toISOString() : null, used: !!target.usedAt, }); @@ -58,17 +57,16 @@ export class InviteCodeEntityService { public async packMany( tickets: MiRegistrationTicket[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { const _createdBys = tickets.map(({ createdBy, createdById }) => createdBy ?? createdById).filter(x => x != null); const _usedBys = tickets.map(({ usedBy, usedById }) => usedBy ?? usedById).filter(x => x != null); - const _userMap = await this.userEntityService.packMany([..._createdBys, ..._usedBys], me, { token }) + const _userMap = await this.userEntityService.packMany([..._createdBys, ..._usedBys], me) .then(users => new Map(users.map(u => [u.id, u]))); return Promise.all( tickets.map(ticket => { const packedCreatedBy = ticket.createdById != null ? _userMap.get(ticket.createdById) : undefined; const packedUsedBy = ticket.usedById != null ? _userMap.get(ticket.usedById) : undefined; - return this.pack(ticket, me, token, { packedCreatedBy, packedUsedBy }); + return this.pack(ticket, me, { packedCreatedBy, packedUsedBy }); }), ); } diff --git a/packages/backend/src/core/entities/ModerationLogEntityService.ts b/packages/backend/src/core/entities/ModerationLogEntityService.ts index c36ffa6d24..bf1b2a002c 100644 --- a/packages/backend/src/core/entities/ModerationLogEntityService.ts +++ b/packages/backend/src/core/entities/ModerationLogEntityService.ts @@ -5,14 +5,13 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, ModerationLogsRepository } from '@/models/_.js'; +import type { ModerationLogsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { } from '@/models/Blocking.js'; import { MiModerationLog } from '@/models/ModerationLog.js'; import { bindThis } from '@/decorators.js'; import { IdService } from '@/core/IdService.js'; import type { Packed } from '@/misc/json-schema.js'; -import type { MiLocalUser } from '@/models/User.js'; import { UserEntityService } from './UserEntityService.js'; @Injectable() @@ -29,8 +28,6 @@ export class ModerationLogEntityService { @bindThis public async pack( src: MiModerationLog['id'] | MiModerationLog, - me?: MiLocalUser, - token?: MiAccessToken | null, hint?: { packedUser?: Packed<'UserDetailedNotMe'>, }, @@ -43,9 +40,8 @@ export class ModerationLogEntityService { type: log.type, info: log.info, userId: log.userId, - user: hint?.packedUser ?? this.userEntityService.pack(log.user ?? log.userId, me, { + user: hint?.packedUser ?? this.userEntityService.pack(log.user ?? log.userId, null, { schema: 'UserDetailedNotMe', - token, }), }); } @@ -53,13 +49,11 @@ export class ModerationLogEntityService { @bindThis public async packMany( reports: MiModerationLog[], - me?: MiLocalUser, - token?: MiAccessToken | null, ) { const _users = reports.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { schema: 'UserDetailedNotMe', token }) + const _userMap = await this.userEntityService.packMany(_users, null, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(reports.map(report => this.pack(report, me, token, { packedUser: _userMap.get(report.userId) }))); + return Promise.all(reports.map(report => this.pack(report, { packedUser: _userMap.get(report.userId) }))); } } diff --git a/packages/backend/src/core/entities/MutingEntityService.ts b/packages/backend/src/core/entities/MutingEntityService.ts index 30d9d97b3f..d361a20271 100644 --- a/packages/backend/src/core/entities/MutingEntityService.ts +++ b/packages/backend/src/core/entities/MutingEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, MutingsRepository } from '@/models/_.js'; +import type { MutingsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; @@ -30,7 +30,6 @@ export class MutingEntityService { public async pack( src: MiMuting['id'] | MiMuting, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hints?: { packedMutee?: Packed<'UserDetailedNotMe'>, }, @@ -44,7 +43,6 @@ export class MutingEntityService { muteeId: muting.muteeId, mutee: hints?.packedMutee ?? this.userEntityService.pack(muting.muteeId, me, { schema: 'UserDetailedNotMe', - token, }), }); } @@ -53,12 +51,11 @@ export class MutingEntityService { public async packMany( mutings: MiMuting[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { const _mutees = mutings.map(({ mutee, muteeId }) => mutee ?? muteeId); - const _userMap = await this.userEntityService.packMany(_mutees, me, { schema: 'UserDetailedNotMe', token }) + const _userMap = await this.userEntityService.packMany(_mutees, me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(mutings.map(muting => this.pack(muting, me, token, { packedMutee: _userMap.get(muting.muteeId) }))); + return Promise.all(mutings.map(muting => this.pack(muting, me, { packedMutee: _userMap.get(muting.muteeId) }))); } } diff --git a/packages/backend/src/core/entities/NoteFavoriteEntityService.ts b/packages/backend/src/core/entities/NoteFavoriteEntityService.ts index f6f48cb98f..3cdafe48ad 100644 --- a/packages/backend/src/core/entities/NoteFavoriteEntityService.ts +++ b/packages/backend/src/core/entities/NoteFavoriteEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, NoteFavoritesRepository } from '@/models/_.js'; +import type { NoteFavoritesRepository } from '@/models/_.js'; import type { } from '@/models/Blocking.js'; import type { MiUser } from '@/models/User.js'; import type { MiNoteFavorite } from '@/models/NoteFavorite.js'; @@ -28,7 +28,6 @@ export class NoteFavoriteEntityService { public async pack( src: MiNoteFavorite['id'] | MiNoteFavorite, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const favorite = typeof src === 'object' ? src : await this.noteFavoritesRepository.findOneByOrFail({ id: src }); @@ -36,7 +35,7 @@ export class NoteFavoriteEntityService { id: favorite.id, createdAt: this.idService.parse(favorite.id).date.toISOString(), noteId: favorite.noteId, - note: await this.noteEntityService.pack(favorite.note ?? favorite.noteId, me, token), + note: await this.noteEntityService.pack(favorite.note ?? favorite.noteId, me), }; } @@ -44,8 +43,7 @@ export class NoteFavoriteEntityService { public packMany( favorites: any[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { - return Promise.all(favorites.map(x => this.pack(x, me, token))); + return Promise.all(favorites.map(x => this.pack(x, me))); } } diff --git a/packages/backend/src/core/entities/NoteReactionEntityService.ts b/packages/backend/src/core/entities/NoteReactionEntityService.ts index 255a06815e..46ec13704c 100644 --- a/packages/backend/src/core/entities/NoteReactionEntityService.ts +++ b/packages/backend/src/core/entities/NoteReactionEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, NoteReactionsRepository } from '@/models/_.js'; +import type { NoteReactionsRepository } from '@/models/_.js'; import type { Packed } from '@/misc/json-schema.js'; import { bindThis } from '@/decorators.js'; import { IdService } from '@/core/IdService.js'; @@ -49,7 +49,6 @@ export class NoteReactionEntityService implements OnModuleInit { public async pack( src: MiNoteReaction['id'] | MiNoteReaction, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, options?: { withNote: boolean; }, @@ -66,10 +65,10 @@ export class NoteReactionEntityService implements OnModuleInit { return { id: reaction.id, createdAt: this.idService.parse(reaction.id).date.toISOString(), - user: hints?.packedUser ?? await this.userEntityService.pack(reaction.user ?? reaction.userId, me, { token }), + user: hints?.packedUser ?? await this.userEntityService.pack(reaction.user ?? reaction.userId, me), type: this.reactionService.convertLegacyReaction(reaction.reaction), ...(opts.withNote ? { - note: await this.noteEntityService.pack(reaction.note ?? reaction.noteId, me, token), + note: await this.noteEntityService.pack(reaction.note ?? reaction.noteId, me), } : {}), }; } @@ -78,7 +77,6 @@ export class NoteReactionEntityService implements OnModuleInit { public async packMany( reactions: MiNoteReaction[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, options?: { withNote: boolean; }, @@ -87,8 +85,8 @@ export class NoteReactionEntityService implements OnModuleInit { withNote: false, }, options); const _users = reactions.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { token }) + const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(reactions.map(reaction => this.pack(reaction, me, token, opts, { packedUser: _userMap.get(reaction.userId) }))); + return Promise.all(reactions.map(reaction => this.pack(reaction, me, opts, { packedUser: _userMap.get(reaction.userId) }))); } } diff --git a/packages/backend/src/core/entities/NotificationEntityService.ts b/packages/backend/src/core/entities/NotificationEntityService.ts index 50af1580c6..c00452110f 100644 --- a/packages/backend/src/core/entities/NotificationEntityService.ts +++ b/packages/backend/src/core/entities/NotificationEntityService.ts @@ -7,7 +7,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { In, EntityNotFoundError } from 'typeorm'; import { DI } from '@/di-symbols.js'; -import type { FollowRequestsRepository, NotesRepository, MiUser, UsersRepository, MiAccessToken, AccessTokensRepository } from '@/models/_.js'; +import type { FollowRequestsRepository, NotesRepository, MiUser, UsersRepository, AccessTokensRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { MiGroupedNotification, MiNotification } from '@/models/Notification.js'; import type { MiNote } from '@/models/Note.js'; @@ -69,7 +69,6 @@ export class NotificationEntityService implements OnModuleInit { async #packInternal ( src: T, meId: MiUser['id'], - token: MiAccessToken | null | undefined, options: { checkValidNotifier?: boolean; }, @@ -86,7 +85,7 @@ export class NotificationEntityService implements OnModuleInit { const noteIfNeed = needsNote ? ( hint?.packedNotes != null ? hint.packedNotes.get(notification.noteId) - : undefOnMissing(this.noteEntityService.pack(notification.noteId, { id: meId }, token, { + : undefOnMissing(this.noteEntityService.pack(notification.noteId, { id: meId }, { detail: true, })) ) : undefined; @@ -97,7 +96,7 @@ export class NotificationEntityService implements OnModuleInit { const userIfNeed = needsUser ? ( hint?.packedUsers != null ? hint.packedUsers.get(notification.notifierId) - : undefOnMissing(this.userEntityService.pack(notification.notifierId, { id: meId }, { token })) + : undefOnMissing(this.userEntityService.pack(notification.notifierId, { id: meId })) ) : undefined; // if the user has been deleted, don't show this notification if (needsUser && !userIfNeed) return null; @@ -107,7 +106,7 @@ export class NotificationEntityService implements OnModuleInit { const reactions = (await Promise.all(notification.reactions.map(async reaction => { const user = hint?.packedUsers != null ? hint.packedUsers.get(reaction.userId)! - : await undefOnMissing(this.userEntityService.pack(reaction.userId, { id: meId }, { token })); + : await undefOnMissing(this.userEntityService.pack(reaction.userId, { id: meId })); return { user, reaction: reaction.reaction, @@ -132,7 +131,7 @@ export class NotificationEntityService implements OnModuleInit { return packedUser; } - return undefOnMissing(this.userEntityService.pack(userId, { id: meId }, { token })); + return undefOnMissing(this.userEntityService.pack(userId, { id: meId })); }))).filter(x => x != null); // if all users have been deleted, don't show this notification if (users.length === 0) { @@ -213,7 +212,6 @@ export class NotificationEntityService implements OnModuleInit { async #packManyInternal ( notifications: T[], meId: MiUser['id'], - token?: MiAccessToken | null, ): Promise { if (notifications.length === 0) return []; @@ -226,7 +224,7 @@ export class NotificationEntityService implements OnModuleInit { where: { id: In(noteIds) }, relations: ['user', 'reply', 'reply.user', 'renote', 'renote.user'], }) : []; - const packedNotesArray = await this.noteEntityService.packMany(notes, { id: meId }, token, { + const packedNotesArray = await this.noteEntityService.packMany(notes, { id: meId }, { detail: true, }); const packedNotes = new Map(packedNotesArray.map(p => [p.id, p])); @@ -242,7 +240,7 @@ export class NotificationEntityService implements OnModuleInit { const users = userIds.length > 0 ? await this.usersRepository.find({ where: { id: In(userIds) }, }) : []; - const packedUsersArray = await this.userEntityService.packMany(users, { id: meId }, { token }); + const packedUsersArray = await this.userEntityService.packMany(users, { id: meId }); const packedUsers = new Map(packedUsersArray.map(p => [p.id, p])); // 既に解決されたフォローリクエストの通知を除外 @@ -258,7 +256,6 @@ export class NotificationEntityService implements OnModuleInit { return this.pack( x, meId, - token, { checkValidNotifier: false }, { packedNotes, packedUsers }, ); @@ -271,7 +268,6 @@ export class NotificationEntityService implements OnModuleInit { public async pack( src: MiNotification | MiGroupedNotification, meId: MiUser['id'], - token: MiAccessToken | null | undefined, options: { checkValidNotifier?: boolean; @@ -281,25 +277,23 @@ export class NotificationEntityService implements OnModuleInit { packedUsers: Map>; }, ): Promise | null> { - return await this.#packInternal(src, meId, token, options, hint); + return await this.#packInternal(src, meId, options, hint); } @bindThis public async packMany( notifications: MiNotification[], meId: MiUser['id'], - token?: MiAccessToken | null, ): Promise { - return await this.#packManyInternal(notifications, meId, token); + return await this.#packManyInternal(notifications, meId); } @bindThis public async packGroupedMany( notifications: MiGroupedNotification[], meId: MiUser['id'], - token?: MiAccessToken | null, ): Promise { - return await this.#packManyInternal(notifications, meId, token); + return await this.#packManyInternal(notifications, meId); } /** diff --git a/packages/backend/src/core/entities/PageEntityService.ts b/packages/backend/src/core/entities/PageEntityService.ts index 17086c3b30..46bf51bb6d 100644 --- a/packages/backend/src/core/entities/PageEntityService.ts +++ b/packages/backend/src/core/entities/PageEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { DriveFilesRepository, PagesRepository, PageLikesRepository, MiAccessToken } from '@/models/_.js'; +import type { DriveFilesRepository, PagesRepository, PageLikesRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; @@ -39,7 +39,6 @@ export class PageEntityService { public async pack( src: MiPage['id'] | MiPage, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hint?: { packedUser?: Packed<'UserLite'> }, @@ -94,7 +93,7 @@ export class PageEntityService { createdAt: this.idService.parse(page.id).date.toISOString(), updatedAt: page.updatedAt.toISOString(), userId: page.userId, - user: hint?.packedUser ?? this.userEntityService.pack(page.user ?? page.userId, me, { token }), // { schema: 'UserDetailed' } すると無限ループするので注意 + user: hint?.packedUser ?? this.userEntityService.pack(page.user ?? page.userId, me), // { schema: 'UserDetailed' } すると無限ループするので注意 content: page.content, variables: page.variables, title: page.title, @@ -116,12 +115,11 @@ export class PageEntityService { public async packMany( pages: MiPage[], me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const _users = pages.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { token }) + const _userMap = await this.userEntityService.packMany(_users, me) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(pages.map(page => this.pack(page, me, token, { packedUser: _userMap.get(page.userId) }))); + return Promise.all(pages.map(page => this.pack(page, me, { packedUser: _userMap.get(page.userId) }))); } } diff --git a/packages/backend/src/core/entities/PageLikeEntityService.ts b/packages/backend/src/core/entities/PageLikeEntityService.ts index 3d7f5155f6..cfccbcb660 100644 --- a/packages/backend/src/core/entities/PageLikeEntityService.ts +++ b/packages/backend/src/core/entities/PageLikeEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, PageLikesRepository } from '@/models/_.js'; +import type { PageLikesRepository } from '@/models/_.js'; import type { } from '@/models/Blocking.js'; import type { MiUser } from '@/models/User.js'; import type { MiPageLike } from '@/models/PageLike.js'; @@ -26,13 +26,12 @@ export class PageLikeEntityService { public async pack( src: MiPageLike['id'] | MiPageLike, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, ) { const like = typeof src === 'object' ? src : await this.pageLikesRepository.findOneByOrFail({ id: src }); return { id: like.id, - page: await this.pageEntityService.pack(like.page ?? like.pageId, me, token), + page: await this.pageEntityService.pack(like.page ?? like.pageId, me), }; } @@ -40,9 +39,8 @@ export class PageLikeEntityService { public packMany( likes: any[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { - return Promise.all(likes.map(x => this.pack(x, me, token))); + return Promise.all(likes.map(x => this.pack(x, me))); } } diff --git a/packages/backend/src/core/entities/RenoteMutingEntityService.ts b/packages/backend/src/core/entities/RenoteMutingEntityService.ts index 4cf586048b..e4e154109a 100644 --- a/packages/backend/src/core/entities/RenoteMutingEntityService.ts +++ b/packages/backend/src/core/entities/RenoteMutingEntityService.ts @@ -5,7 +5,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, RenoteMutingsRepository } from '@/models/_.js'; +import type { RenoteMutingsRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; @@ -30,7 +30,6 @@ export class RenoteMutingEntityService { public async pack( src: MiRenoteMuting['id'] | MiRenoteMuting, me?: { id: MiUser['id'] } | null | undefined, - token?: MiAccessToken | null, hints?: { packedMutee?: Packed<'UserDetailedNotMe'> }, @@ -43,7 +42,6 @@ export class RenoteMutingEntityService { muteeId: muting.muteeId, mutee: hints?.packedMutee ?? this.userEntityService.pack(muting.muteeId, me, { schema: 'UserDetailedNotMe', - token, }), }); } @@ -52,12 +50,11 @@ export class RenoteMutingEntityService { public async packMany( mutings: MiRenoteMuting[], me: { id: MiUser['id'] }, - token?: MiAccessToken | null, ) { const _users = mutings.map(({ mutee, muteeId }) => mutee ?? muteeId); - const _userMap = await this.userEntityService.packMany(_users, me, { schema: 'UserDetailedNotMe', token }) + const _userMap = await this.userEntityService.packMany(_users, me, { schema: 'UserDetailedNotMe' }) .then(users => new Map(users.map(u => [u.id, u]))); - return Promise.all(mutings.map(muting => this.pack(muting, me, token, { packedMutee: _userMap.get(muting.muteeId) }))); + return Promise.all(mutings.map(muting => this.pack(muting, me, { packedMutee: _userMap.get(muting.muteeId) }))); } } diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts index 47ea7c2282..2aff910ea0 100644 --- a/packages/backend/src/core/entities/UserEntityService.ts +++ b/packages/backend/src/core/entities/UserEntityService.ts @@ -481,8 +481,8 @@ export class UserEntityService implements OnModuleInit { const isDetailed = opts.schema !== 'UserLite'; const meId = me ? me.id : null; const isMe = meId === user.id; - const iAmModerator = opts.iAmModerator ?? (me ? await this.roleService.isModerator(me as MiUser, opts.token) : false); - const iAmAdmin = opts.iAmAdmin ?? (me ? await this.roleService.isAdministrator(user, opts.token) : false); + const iAmModerator = opts.iAmModerator ?? (me ? await this.roleService.isModerator(me as MiUser) : false); + const iAmAdmin = opts.iAmAdmin ?? (me ? await this.roleService.isAdministrator(user) : false); const profile = isDetailed ? (opts.userProfile ?? user.userProfile ?? await this.userProfilesRepository.findOneByOrFail({ userId: user.id })) @@ -629,11 +629,11 @@ export class UserEntityService implements OnModuleInit { fields: profile!.fields, verifiedLinks: profile!.verifiedLinks, pinnedNoteIds: pins.map(pin => pin.noteId), - pinnedNotes: this.noteEntityService.packMany(pins.map(pin => pin.note!), me, opts.token, { + pinnedNotes: this.noteEntityService.packMany(pins.map(pin => pin.note!), me, { detail: true, }), pinnedPageId: profile!.pinnedPageId, - pinnedPage: profile!.pinnedPageId ? this.pageEntityService.pack(profile!.pinnedPageId, me, opts.token) : null, + pinnedPage: profile!.pinnedPageId ? this.pageEntityService.pack(profile!.pinnedPageId, me) : null, publicReactions: this.isLocalUser(user) ? profile!.publicReactions : false, // https://github.com/misskey-dev/misskey/issues/12964 followersVisibility: profile!.followersVisibility, followingVisibility: profile!.followingVisibility, @@ -744,15 +744,12 @@ export class UserEntityService implements OnModuleInit { return await awaitAll(packed); } - // TODO pass token - public async packMany( users: (MiUser['id'] | MiUser)[], me?: { id: MiUser['id'] } | null | undefined, options?: { schema?: S, includeSecrets?: boolean, - token?: MiAccessToken | null, }, ): Promise[]> { if (users.length === 0) return []; @@ -775,9 +772,8 @@ export class UserEntityService implements OnModuleInit { const _userIds = _users.map(u => u.id); // Sync with ApiCallService - const roles = me ? await this.roleService.getUserRoles(me.id) : []; - const iAmAdmin = roles.some(r => r.isAdministrator) && (options?.token?.rank == null || options?.token.rank === 'admin'); - const iAmModerator = roles.some(r => r.isAdministrator || r.isModerator) && (options?.token?.rank == null || options?.token.rank === 'admin' || options?.token.rank === 'mod'); + const iAmAdmin = me ? await this.roleService.isAdministrator(me) : false; + const iAmModerator = me ? await this.roleService.isModerator(me) : false; const meId = me ? me.id : null; const isDetailed = options && options.schema !== 'UserLite'; diff --git a/packages/backend/src/core/entities/UserListEntityService.ts b/packages/backend/src/core/entities/UserListEntityService.ts index 88b810fb18..b77249c5cb 100644 --- a/packages/backend/src/core/entities/UserListEntityService.ts +++ b/packages/backend/src/core/entities/UserListEntityService.ts @@ -5,13 +5,12 @@ import { Inject, Injectable } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; -import type { MiAccessToken, MiUserListMembership, UserListMembershipsRepository, UserListsRepository } from '@/models/_.js'; +import type { MiUserListMembership, UserListMembershipsRepository, UserListsRepository } from '@/models/_.js'; import type { Packed } from '@/misc/json-schema.js'; import type { } from '@/models/Blocking.js'; import type { MiUserList } from '@/models/UserList.js'; import { bindThis } from '@/decorators.js'; import { IdService } from '@/core/IdService.js'; -import type { MiLocalUser } from '@/models/User.js'; import { UserEntityService } from './UserEntityService.js'; @Injectable() @@ -50,17 +49,15 @@ export class UserListEntityService { @bindThis public async packMembershipsMany( memberships: MiUserListMembership[], - me?: MiLocalUser | null, - token?: MiAccessToken | null, ) { const _users = memberships.map(({ user, userId }) => user ?? userId); - const _userMap = await this.userEntityService.packMany(_users, me, { token }) + const _userMap = await this.userEntityService.packMany(_users) .then(users => new Map(users.map(u => [u.id, u]))); return Promise.all(memberships.map(async x => ({ id: x.id, createdAt: this.idService.parse(x.id).date.toISOString(), userId: x.userId, - user: _userMap.get(x.userId) ?? await this.userEntityService.pack(x.userId, me, { token }), + user: _userMap.get(x.userId) ?? await this.userEntityService.pack(x.userId), withReplies: x.withReplies, }))); } diff --git a/packages/backend/src/server/api/ApiServerService.ts b/packages/backend/src/server/api/ApiServerService.ts index b58aa35f38..6ed139ad77 100644 --- a/packages/backend/src/server/api/ApiServerService.ts +++ b/packages/backend/src/server/api/ApiServerService.ts @@ -201,7 +201,7 @@ export class ApiServerService { return { ok: true, token: token.token, - user: await this.userEntityService.pack(token.userId, null, { schema: 'UserDetailedNotMe', token }), + user: await this.userEntityService.pack(token.userId, null, { schema: 'UserDetailedNotMe' }), }; } else { return { diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts index 594bb9c43c..b8200c09aa 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -119,7 +119,7 @@ export default class extends Endpoint { // eslint- private abuseUserReportEntityService: AbuseUserReportEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.abuseUserReportsRepository.createQueryBuilder('report'), ps.sinceId, ps.untilId) .leftJoinAndSelect('report.targetUser', 'targetUser') .leftJoinAndSelect('targetUser.userProfile', 'targetUserProfile') @@ -147,7 +147,7 @@ export default class extends Endpoint { // eslint- const reports = await query.limit(ps.limit).getMany(); - return await this.abuseUserReportEntityService.packMany(reports, me, token); + return await this.abuseUserReportEntityService.packMany(reports, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/create.ts b/packages/backend/src/server/api/endpoints/admin/accounts/create.ts index 4267a33f53..88490800cf 100644 --- a/packages/backend/src/server/api/endpoints/admin/accounts/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/accounts/create.ts @@ -121,7 +121,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noPermission); } - if (me && !await this.roleService.isAdministrator(me, token)) { + if (me && !await this.roleService.isAdministrator(me)) { // Only administrators (including root) can create users. throw new ApiError(meta.errors.noAdmin); } diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts index d2489ebd66..617a1c2b39 100644 --- a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts +++ b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts @@ -47,7 +47,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const profile = await this.userProfilesRepository.findOne({ where: { email: ps.email }, relations: ['user'], @@ -59,7 +59,6 @@ export default class extends Endpoint { // eslint- const res = await this.userEntityService.pack(profile.user!, me, { schema: 'UserDetailedNotMe', - token, }); return res; diff --git a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts index 8b007d68b8..a7136d8c8c 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts @@ -185,7 +185,7 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private idService: IdService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const file = ps.fileId ? await this.driveFilesRepository.findOneBy({ id: ps.fileId }) : await this.driveFilesRepository.findOne({ where: [{ url: ps.url, @@ -204,7 +204,7 @@ export default class extends Endpoint { // eslint- id: file.userId, }) : null; - const iAmModerator = await this.roleService.isModerator(me, token); + const iAmModerator = await this.roleService.isModerator(me); const ownerIsModerator = owner ? await this.roleService.isModerator(owner) : false; return { diff --git a/packages/backend/src/server/api/endpoints/admin/invite/create.ts b/packages/backend/src/server/api/endpoints/admin/invite/create.ts index ecb2a88172..e52b177e2b 100644 --- a/packages/backend/src/server/api/endpoints/admin/invite/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/invite/create.ts @@ -58,7 +58,7 @@ export default class extends Endpoint { // eslint- private idService: IdService, private moderationLogService: ModerationLogService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { if (ps.expiresAt && isNaN(Date.parse(ps.expiresAt))) { throw new ApiError(meta.errors.invalidDateTime); } @@ -81,7 +81,7 @@ export default class extends Endpoint { // eslint- invitations: tickets, }); - return await this.inviteCodeEntityService.packMany(tickets, me, token); + return await this.inviteCodeEntityService.packMany(tickets, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/invite/list.ts b/packages/backend/src/server/api/endpoints/admin/invite/list.ts index b22e09f0b1..e33a9a1aec 100644 --- a/packages/backend/src/server/api/endpoints/admin/invite/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/invite/list.ts @@ -46,7 +46,7 @@ export default class extends Endpoint { // eslint- private inviteCodeEntityService: InviteCodeEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.registrationTicketsRepository.createQueryBuilder('ticket') .leftJoinAndSelect('ticket.createdBy', 'createdBy') .leftJoinAndSelect('ticket.usedBy', 'usedBy'); @@ -70,7 +70,7 @@ export default class extends Endpoint { // eslint- const tickets = await query.getMany(); - return await this.inviteCodeEntityService.packMany(tickets, me, token); + return await this.inviteCodeEntityService.packMany(tickets, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/roles/assign.ts b/packages/backend/src/server/api/endpoints/admin/roles/assign.ts index 6181f31b0c..b6c7953781 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/assign.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/assign.ts @@ -65,13 +65,13 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const role = await this.rolesRepository.findOneBy({ id: ps.roleId }); if (role == null) { throw new ApiError(meta.errors.noSuchRole); } - if (!role.canEditMembersByModerator && !(await this.roleService.isAdministrator(me, token))) { + if (!role.canEditMembersByModerator && !(await this.roleService.isAdministrator(me))) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts b/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts index f951176945..e7da3384b1 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts @@ -67,13 +67,13 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const role = await this.rolesRepository.findOneBy({ id: ps.roleId }); if (role == null) { throw new ApiError(meta.errors.noSuchRole); } - if (!role.canEditMembersByModerator && !(await this.roleService.isAdministrator(me, token))) { + if (!role.canEditMembersByModerator && !(await this.roleService.isAdministrator(me))) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts b/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts index 42fa8c42df..58c5f1f60a 100644 --- a/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts +++ b/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- private moderationLogEntityService: ModerationLogEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.moderationLogsRepository.createQueryBuilder('report'), ps.sinceId, ps.untilId); if (ps.type != null) { @@ -91,7 +91,7 @@ export default class extends Endpoint { // eslint- const reports = await query.limit(ps.limit).getMany(); - return await this.moderationLogEntityService.packMany(reports, me, token); + return await this.moderationLogEntityService.packMany(reports); }); } } diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts index 95f69a63c5..6f0081f1f7 100644 --- a/packages/backend/src/server/api/endpoints/admin/show-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts @@ -254,7 +254,7 @@ export default class extends Endpoint { // eslint- private idService: IdService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const [user, profile] = await Promise.all([ this.usersRepository.findOneBy({ id: ps.userId }), this.userProfilesRepository.findOneBy({ userId: ps.userId }), @@ -269,7 +269,7 @@ export default class extends Endpoint { // eslint- const isSilenced = user.isSilenced || !(await this.roleService.getUserPolicies(user.id)).canPublicNote; const _me = await this.usersRepository.findOneByOrFail({ id: me.id }); - if (!await this.roleService.isAdministrator(_me, token) && await this.roleService.isAdministrator(user)) { + if (!await this.roleService.isAdministrator(_me) && await this.roleService.isAdministrator(user)) { throw new Error('cannot show info of admin'); } diff --git a/packages/backend/src/server/api/endpoints/admin/silence-user.ts b/packages/backend/src/server/api/endpoints/admin/silence-user.ts index cb8f80d399..e69c46e55a 100644 --- a/packages/backend/src/server/api/endpoints/admin/silence-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/silence-user.ts @@ -38,10 +38,10 @@ export default class extends Endpoint { // eslint- private readonly roleService: RoleService, private readonly globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const user = await this.cacheService.findUserById(ps.userId); - if (await this.roleService.isModerator(user, token)) { + if (await this.roleService.isModerator(user)) { throw new Error('cannot silence moderator account'); } diff --git a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts index 71f59dacfb..39d208a859 100644 --- a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts @@ -35,7 +35,7 @@ export default class extends Endpoint { // eslint- private userSuspendService: UserSuspendService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const user = await this.usersRepository.findOneBy({ id: ps.userId }); if (user == null) { @@ -44,7 +44,7 @@ export default class extends Endpoint { // eslint- if (user.isSuspended) return; - if (await this.roleService.isModerator(user, token)) { + if (await this.roleService.isModerator(user)) { throw new Error('cannot suspend moderator account'); } diff --git a/packages/backend/src/server/api/endpoints/admin/update-proxy-account.ts b/packages/backend/src/server/api/endpoints/admin/update-proxy-account.ts index 107122eead..6c9612c71a 100644 --- a/packages/backend/src/server/api/endpoints/admin/update-proxy-account.ts +++ b/packages/backend/src/server/api/endpoints/admin/update-proxy-account.ts @@ -40,14 +40,13 @@ export default class extends Endpoint { // eslint- private moderationLogService: ModerationLogService, private systemAccountService: SystemAccountService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const proxy = await this.systemAccountService.updateCorrespondingUserProfile('proxy', { description: ps.description, }); const updated = await this.userEntityService.pack(proxy.id, proxy, { schema: 'MeDetailed', - token, }); if (ps.description !== undefined) { diff --git a/packages/backend/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts index c41f7e87c0..0aeceda038 100644 --- a/packages/backend/src/server/api/endpoints/antennas/notes.ts +++ b/packages/backend/src/server/api/endpoints/antennas/notes.ts @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- private globalEventService: GlobalEventService, private readonly activeUsersChart: ActiveUsersChart, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -134,7 +134,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/ap/show.ts b/packages/backend/src/server/api/endpoints/ap/show.ts index 9895bc0916..d631b002cc 100644 --- a/packages/backend/src/server/api/endpoints/ap/show.ts +++ b/packages/backend/src/server/api/endpoints/ap/show.ts @@ -21,7 +21,6 @@ import { ApRequestService } from '@/core/activitypub/ApRequestService.js'; import { SystemAccountService } from '@/core/SystemAccountService.js'; import { ApiError } from '../../error.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { MiAccessToken } from '@/models/AccessToken.js'; export const meta = { tags: ['federation'], @@ -122,8 +121,8 @@ export default class extends Endpoint { // eslint- private readonly apRequestService: ApRequestService, private readonly systemAccountService: SystemAccountService, ) { - super(meta, paramDef, async (ps, me, token) => { - const object = await this.fetchAny(ps.uri, me, token); + super(meta, paramDef, async (ps, me) => { + const object = await this.fetchAny(ps.uri, me); if (object) { return object; } else { @@ -136,12 +135,12 @@ export default class extends Endpoint { // eslint- * URIからUserかNoteを解決する */ @bindThis - private async fetchAny(uri: string, me: MiLocalUser | null | undefined, token?: MiAccessToken | null): Promise | null> { + private async fetchAny(uri: string, me: MiLocalUser | null | undefined): Promise | null> { if (!this.utilityService.isFederationAllowedUri(uri)) { throw new ApiError(meta.errors.federationNotAllowed); } - const local = await this.mergePack(me, token, ...await Promise.all([ + const local = await this.mergePack(me, ...await Promise.all([ this.apDbResolverService.getUserFromApId(uri), this.apDbResolverService.getNoteFromApId(uri), ])); @@ -199,22 +198,21 @@ export default class extends Endpoint { // eslint- // The resolve* methods automatically check for locally cached copies. return await this.mergePack( me, - token, isActor(object) ? await this.apPersonService.resolvePerson(object, resolver, uri) : null, isPost(object) ? await this.apNoteService.resolveNote(object, { resolver, sentFrom: uri }) : null, ); } @bindThis - private async mergePack(me: MiLocalUser | null | undefined, token: MiAccessToken | null | undefined, user: MiUser | null | undefined, note: MiNote | null | undefined): Promise | null> { + private async mergePack(me: MiLocalUser | null | undefined, user: MiUser | null | undefined, note: MiNote | null | undefined): Promise | null> { if (user != null) { return { type: 'User', - object: await this.userEntityService.pack(user, me, { schema: 'UserDetailedNotMe', token }), + object: await this.userEntityService.pack(user, me, { schema: 'UserDetailedNotMe' }), }; } else if (note != null) { try { - const object = await this.noteEntityService.pack(note, me, token, { detail: true }); + const object = await this.noteEntityService.pack(note, me, { detail: true }); return { type: 'Note', diff --git a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts index 29b78656f7..1027eeb4d4 100644 --- a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts +++ b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts @@ -119,7 +119,6 @@ export default class extends Endpoint { // eslint- accessToken: accessToken.token, user: await this.userEntityService.pack(session.userId, me, { schema: 'UserDetailedNotMe', - token: accessToken, }), }; }); diff --git a/packages/backend/src/server/api/endpoints/blocking/create.ts b/packages/backend/src/server/api/endpoints/blocking/create.ts index 140176f006..fd6c164449 100644 --- a/packages/backend/src/server/api/endpoints/blocking/create.ts +++ b/packages/backend/src/server/api/endpoints/blocking/create.ts @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- private userBlockingService: UserBlockingService, private userMutingService: UserMutingService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const blocker = await this.usersRepository.findOneByOrFail({ id: me.id }); // 自分自身 @@ -120,7 +120,6 @@ export default class extends Endpoint { // eslint- return await this.userEntityService.pack(blockee.id, blocker, { schema: 'UserDetailedNotMe', - token, }); }); } diff --git a/packages/backend/src/server/api/endpoints/blocking/delete.ts b/packages/backend/src/server/api/endpoints/blocking/delete.ts index 5524fdb463..a4cd1b1cde 100644 --- a/packages/backend/src/server/api/endpoints/blocking/delete.ts +++ b/packages/backend/src/server/api/endpoints/blocking/delete.ts @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- private userBlockingService: UserBlockingService, private userMutingService: UserMutingService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const blocker = await this.usersRepository.findOneByOrFail({ id: me.id }); // Check if the blockee is yourself @@ -119,7 +119,6 @@ export default class extends Endpoint { // eslint- return await this.userEntityService.pack(blockee.id, blocker, { schema: 'UserDetailedNotMe', - token, }); }); } diff --git a/packages/backend/src/server/api/endpoints/blocking/list.ts b/packages/backend/src/server/api/endpoints/blocking/list.ts index 5dde186364..ecbfb10d53 100644 --- a/packages/backend/src/server/api/endpoints/blocking/list.ts +++ b/packages/backend/src/server/api/endpoints/blocking/list.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private blockingEntityService: BlockingEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.blockingsRepository.createQueryBuilder('blocking'), ps.sinceId, ps.untilId) .andWhere('blocking.blockerId = :meId', { meId: me.id }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.blockingEntityService.packMany(blockings, me, token); + return await this.blockingEntityService.packMany(blockings, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts b/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts index 449261cbed..439c228207 100644 --- a/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts +++ b/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts @@ -64,7 +64,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps) => { const records = await this.bubbleGameRecordsRepository.find({ where: { gameMode: ps.gameMode, @@ -77,7 +77,7 @@ export default class extends Endpoint { // eslint- relations: ['user'], }); - const users = await this.userEntityService.packMany(records.map(r => r.user!), me, { token }); + const users = await this.userEntityService.packMany(records.map(r => r.user!), me); return records.map(r => ({ id: r.id, diff --git a/packages/backend/src/server/api/endpoints/channels/create.ts b/packages/backend/src/server/api/endpoints/channels/create.ts index 98771bf958..e3a6d2d670 100644 --- a/packages/backend/src/server/api/endpoints/channels/create.ts +++ b/packages/backend/src/server/api/endpoints/channels/create.ts @@ -67,7 +67,7 @@ export default class extends Endpoint { // eslint- private idService: IdService, private channelEntityService: ChannelEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { let banner = null; if (ps.bannerId != null) { banner = await this.driveFilesRepository.findOneBy({ @@ -91,7 +91,7 @@ export default class extends Endpoint { // eslint- allowRenoteToExternal: ps.allowRenoteToExternal ?? true, } as MiChannel); - return await this.channelEntityService.pack(channel, me, token); + return await this.channelEntityService.pack(channel, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/channels/featured.ts b/packages/backend/src/server/api/endpoints/channels/featured.ts index 2bda4868d8..24323cbe63 100644 --- a/packages/backend/src/server/api/endpoints/channels/featured.ts +++ b/packages/backend/src/server/api/endpoints/channels/featured.ts @@ -45,7 +45,7 @@ export default class extends Endpoint { // eslint- private channelEntityService: ChannelEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.channelsRepository.createQueryBuilder('channel') .where('channel.lastNotedAt IS NOT NULL') .andWhere('channel.isArchived = FALSE') @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- const channels = await query.limit(10).getMany(); - return await Promise.all(channels.map(x => this.channelEntityService.pack(x, me, token))); + return await Promise.all(channels.map(x => this.channelEntityService.pack(x, me))); }); } } diff --git a/packages/backend/src/server/api/endpoints/channels/followed.ts b/packages/backend/src/server/api/endpoints/channels/followed.ts index 64cf7d08a7..415f7ee29a 100644 --- a/packages/backend/src/server/api/endpoints/channels/followed.ts +++ b/packages/backend/src/server/api/endpoints/channels/followed.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private channelEntityService: ChannelEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService .makePaginationQuery( this.channelFollowingsRepository.createQueryBuilder(), @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await Promise.all(followings.map(x => this.channelEntityService.pack(x.followeeId, me, token))); + return await Promise.all(followings.map(x => this.channelEntityService.pack(x.followeeId, me))); }); } } diff --git a/packages/backend/src/server/api/endpoints/channels/my-favorites.ts b/packages/backend/src/server/api/endpoints/channels/my-favorites.ts index 37399585cf..72a1cc0cf9 100644 --- a/packages/backend/src/server/api/endpoints/channels/my-favorites.ts +++ b/packages/backend/src/server/api/endpoints/channels/my-favorites.ts @@ -48,7 +48,7 @@ export default class extends Endpoint { // eslint- private channelEntityService: ChannelEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.channelFavoritesRepository.createQueryBuilder('favorite') .andWhere('favorite.userId = :meId', { meId: me.id }) .leftJoinAndSelect('favorite.channel', 'channel'); @@ -56,7 +56,7 @@ export default class extends Endpoint { // eslint- const favorites = await query .getMany(); - return await Promise.all(favorites.map(x => this.channelEntityService.pack(x.channel!, me, token))); + return await Promise.all(favorites.map(x => this.channelEntityService.pack(x.channel!, me))); }); } } diff --git a/packages/backend/src/server/api/endpoints/channels/owned.ts b/packages/backend/src/server/api/endpoints/channels/owned.ts index 1a0e9987a7..6e51add6b2 100644 --- a/packages/backend/src/server/api/endpoints/channels/owned.ts +++ b/packages/backend/src/server/api/endpoints/channels/owned.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private channelEntityService: ChannelEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.channelsRepository.createQueryBuilder('channel'), ps.sinceId, ps.untilId) .andWhere('channel.isArchived = FALSE') .andWhere({ userId: me.id }); @@ -62,7 +62,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await Promise.all(channels.map(x => this.channelEntityService.pack(x, me, token))); + return await Promise.all(channels.map(x => this.channelEntityService.pack(x, me))); }); } } diff --git a/packages/backend/src/server/api/endpoints/channels/show.ts b/packages/backend/src/server/api/endpoints/channels/show.ts index 401c16ceca..e9c0c392c0 100644 --- a/packages/backend/src/server/api/endpoints/channels/show.ts +++ b/packages/backend/src/server/api/endpoints/channels/show.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private channelEntityService: ChannelEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const channel = await this.channelsRepository.findOneBy({ id: ps.channelId, }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchChannel); } - return await this.channelEntityService.pack(channel, me, token, true); + return await this.channelEntityService.pack(channel, me, true); }); } } diff --git a/packages/backend/src/server/api/endpoints/channels/timeline.ts b/packages/backend/src/server/api/endpoints/channels/timeline.ts index 7556af049d..806b203b51 100644 --- a/packages/backend/src/server/api/endpoints/channels/timeline.ts +++ b/packages/backend/src/server/api/endpoints/channels/timeline.ts @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- private activeUsersChart: ActiveUsersChart, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -104,7 +104,7 @@ export default class extends Endpoint { // eslint- } if (!this.serverSettings.enableFanoutTimeline) { - return await this.noteEntityService.packMany(await this.getFromDb({ untilId, sinceId, limit: ps.limit, channelId: channel.id, withFiles: ps.withFiles, withRenotes: ps.withRenotes }, me), me, token); + return await this.noteEntityService.packMany(await this.getFromDb({ untilId, sinceId, limit: ps.limit, channelId: channel.id, withFiles: ps.withFiles, withRenotes: ps.withRenotes }, me), me); } return await this.fanoutTimelineEndpointService.timeline({ @@ -113,7 +113,6 @@ export default class extends Endpoint { // eslint- limit: ps.limit, allowPartial: ps.allowPartial, me, - token, useDbFallback: true, redisTimelines: [`channelTimeline:${channel.id}`], excludePureRenotes: !ps.withRenotes, diff --git a/packages/backend/src/server/api/endpoints/channels/update.ts b/packages/backend/src/server/api/endpoints/channels/update.ts index b7ec7cb119..7cca688fda 100644 --- a/packages/backend/src/server/api/endpoints/channels/update.ts +++ b/packages/backend/src/server/api/endpoints/channels/update.ts @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const channel = await this.channelsRepository.findOneBy({ id: ps.channelId, }); @@ -94,7 +94,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchChannel); } - const iAmModerator = await this.roleService.isModerator(me, token); + const iAmModerator = await this.roleService.isModerator(me); if (channel.userId !== me.id && !iAmModerator) { throw new ApiError(meta.errors.accessDenied); } @@ -125,7 +125,7 @@ export default class extends Endpoint { // eslint- ...(typeof ps.allowRenoteToExternal === 'boolean' ? { allowRenoteToExternal: ps.allowRenoteToExternal } : {}), }); - return await this.channelEntityService.pack(channel.id, me, token); + return await this.channelEntityService.pack(channel.id, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/charts/user/following.ts b/packages/backend/src/server/api/endpoints/charts/user/following.ts index 7a741e3735..1d333f9a9b 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/following.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/following.ts @@ -45,11 +45,11 @@ export default class extends Endpoint { // eslint- private readonly cacheService: CacheService, private readonly roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const profile = await this.cacheService.userProfileCache.fetch(ps.userId); // These are structured weird to avoid un-necessary calls to roleService and cacheService - const iAmModeratorOrTarget = me && (me.id === ps.userId || await this.roleService.isModerator(me, token)); + const iAmModeratorOrTarget = me && (me.id === ps.userId || await this.roleService.isModerator(me)); const iAmFollowingOrTarget = me && (me.id === ps.userId || await this.cacheService.isFollowing(me.id, ps.userId)); const canViewFollowing = diff --git a/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts b/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts index 38ae995111..c0e344b889 100644 --- a/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts +++ b/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private chatEntityService: ChatEntityService, private chatService: ChatService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { await this.chatService.checkChatAvailability(me.id, 'read'); const room = await this.chatService.findRoomById(ps.roomId); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchRoom); } - if (!await this.chatService.hasPermissionToViewRoomTimeline(me.id, room, token)) { + if (!await this.chatService.hasPermissionToViewRoomTimeline(me.id, room)) { throw new ApiError(meta.errors.noSuchRoom); } diff --git a/packages/backend/src/server/api/endpoints/chat/messages/show.ts b/packages/backend/src/server/api/endpoints/chat/messages/show.ts index 840b542df3..9a2bbb8742 100644 --- a/packages/backend/src/server/api/endpoints/chat/messages/show.ts +++ b/packages/backend/src/server/api/endpoints/chat/messages/show.ts @@ -49,14 +49,14 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private chatEntityService: ChatEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { await this.chatService.checkChatAvailability(me.id, 'read'); const message = await this.chatService.findMessageById(ps.messageId); if (message == null) { throw new ApiError(meta.errors.noSuchMessage); } - if (message.fromUserId !== me.id && message.toUserId !== me.id && !(await this.roleService.isModerator(me, token))) { + if (message.fromUserId !== me.id && message.toUserId !== me.id && !(await this.roleService.isModerator(me))) { throw new ApiError(meta.errors.noSuchMessage); } return this.chatEntityService.packMessageDetailed(message, me); diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts b/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts index 71438af410..1ea81448c1 100644 --- a/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts +++ b/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts @@ -38,7 +38,7 @@ export default class extends Endpoint { // eslint- constructor( private chatService: ChatService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { await this.chatService.checkChatAvailability(me.id, 'write'); const room = await this.chatService.findRoomById(ps.roomId); @@ -46,7 +46,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchRoom); } - if (!await this.chatService.hasPermissionToDeleteRoom(me.id, room, token)) { + if (!await this.chatService.hasPermissionToDeleteRoom(me.id, room)) { throw new ApiError(meta.errors.noSuchRoom); } diff --git a/packages/backend/src/server/api/endpoints/clips/create.ts b/packages/backend/src/server/api/endpoints/clips/create.ts index 27abc91543..e3b8f33f97 100644 --- a/packages/backend/src/server/api/endpoints/clips/create.ts +++ b/packages/backend/src/server/api/endpoints/clips/create.ts @@ -56,7 +56,7 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, private clipService: ClipService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { let clip: MiClip; try { // 空文字列をnullにしたいので??は使わない @@ -68,7 +68,7 @@ export default class extends Endpoint { // eslint- } throw e; } - return await this.clipEntityService.pack(clip, me, token); + return await this.clipEntityService.pack(clip, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/list.ts b/packages/backend/src/server/api/endpoints/clips/list.ts index 05bb4034c8..cd4c6bb2fc 100644 --- a/packages/backend/src/server/api/endpoints/clips/list.ts +++ b/packages/backend/src/server/api/endpoints/clips/list.ts @@ -47,12 +47,12 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const clips = await this.clipsRepository.findBy({ userId: me.id, }); - return await this.clipEntityService.packMany(clips, me, token); + return await this.clipEntityService.packMany(clips, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts index 3d98731cc8..1f9b24e6c9 100644 --- a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts +++ b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts @@ -48,7 +48,7 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.clipFavoritesRepository.createQueryBuilder('favorite') .andWhere('favorite.userId = :meId', { meId: me.id }) .leftJoinAndSelect('favorite.clip', 'clip'); @@ -56,7 +56,7 @@ export default class extends Endpoint { // eslint- const favorites = await query .getMany(); - return this.clipEntityService.packMany(favorites.map(x => x.clip!), me, token); + return this.clipEntityService.packMany(favorites.map(x => x.clip!), me); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/notes.ts b/packages/backend/src/server/api/endpoints/clips/notes.ts index bd1a16155b..a238d7d002 100644 --- a/packages/backend/src/server/api/endpoints/clips/notes.ts +++ b/packages/backend/src/server/api/endpoints/clips/notes.ts @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- private noteEntityService: NoteEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const clip = await this.clipsRepository.findOneBy({ id: ps.clipId, }); @@ -104,7 +104,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/show.ts b/packages/backend/src/server/api/endpoints/clips/show.ts index 9dc6ff96eb..949f0e70aa 100644 --- a/packages/backend/src/server/api/endpoints/clips/show.ts +++ b/packages/backend/src/server/api/endpoints/clips/show.ts @@ -54,7 +54,7 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { // Fetch the clip const clip = await this.clipsRepository.findOneBy({ id: ps.clipId, @@ -68,7 +68,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchClip); } - return await this.clipEntityService.pack(clip, me, token); + return await this.clipEntityService.pack(clip, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts index 1957e2ebec..beab427b69 100644 --- a/packages/backend/src/server/api/endpoints/clips/update.ts +++ b/packages/backend/src/server/api/endpoints/clips/update.ts @@ -57,7 +57,7 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { try { // 空文字列をnullにしたいので??は使わない // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- throw e; } - return await this.clipEntityService.pack(ps.clipId, me, token); + return await this.clipEntityService.pack(ps.clipId, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/drive/files/delete.ts b/packages/backend/src/server/api/endpoints/drive/files/delete.ts index 3bc944a68f..3065bb6711 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/delete.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/delete.ts @@ -60,14 +60,14 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const file = await this.driveFilesRepository.findOneBy({ id: ps.fileId }); if (file == null) { throw new ApiError(meta.errors.noSuchFile); } - if (!await this.roleService.isModerator(me, token) && (file.userId !== me.id)) { + if (!await this.roleService.isModerator(me) && (file.userId !== me.id)) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/drive/files/show.ts b/packages/backend/src/server/api/endpoints/drive/files/show.ts index 759fb3d649..64f6a8b2ba 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/show.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/show.ts @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- private driveFileEntityService: DriveFileEntityService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { let file: MiDriveFile | null = null; if (ps.fileId) { @@ -90,7 +90,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchFile); } - if (!await this.roleService.isModerator(me, token) && (file.userId !== me.id)) { + if (!await this.roleService.isModerator(me) && (file.userId !== me.id)) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/drive/files/update.ts b/packages/backend/src/server/api/endpoints/drive/files/update.ts index 30846b107f..306a646785 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/update.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/update.ts @@ -94,13 +94,13 @@ export default class extends Endpoint { // eslint- private driveService: DriveService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const file = await this.driveFilesRepository.findOneBy({ id: ps.fileId }); if (file == null) { throw new ApiError(meta.errors.noSuchFile); } - if (!await this.roleService.isModerator(me, token) && (file.userId !== me.id)) { + if (!await this.roleService.isModerator(me) && (file.userId !== me.id)) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts index c64f410630..9add00ccde 100644 --- a/packages/backend/src/server/api/endpoints/federation/followers.ts +++ b/packages/backend/src/server/api/endpoints/federation/followers.ts @@ -49,8 +49,8 @@ export default class extends Endpoint { // eslint- constructor( private followingEntityService: FollowingEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { - return this.followingEntityService.getFollowers(me, token, ps); + super(meta, paramDef, async (ps, me) => { + return this.followingEntityService.getFollowers(me, ps); }); } } diff --git a/packages/backend/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts index 0ec0f5b9a7..849bb61fb4 100644 --- a/packages/backend/src/server/api/endpoints/federation/following.ts +++ b/packages/backend/src/server/api/endpoints/federation/following.ts @@ -49,8 +49,8 @@ export default class extends Endpoint { // eslint- constructor( private followingEntityService: FollowingEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { - return this.followingEntityService.getFollowing(me, token, ps); + super(meta, paramDef, async (ps, me) => { + return this.followingEntityService.getFollowing(me, ps); }); } } diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts index 31cd6741b9..da0535d0b9 100644 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ b/packages/backend/src/server/api/endpoints/federation/instances.ts @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- private instanceEntityService: InstanceEntityService, private metaService: MetaService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.instancesRepository.createQueryBuilder('instance'); switch (ps.sort) { @@ -191,7 +191,7 @@ export default class extends Endpoint { // eslint- const instances = await query.limit(ps.limit).offset(ps.offset).getMany(); - return await this.instanceEntityService.packMany(instances, me, token); + return await this.instanceEntityService.packMany(instances, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/federation/show-instance.ts b/packages/backend/src/server/api/endpoints/federation/show-instance.ts index b1bbfc23fa..ea3349c17b 100644 --- a/packages/backend/src/server/api/endpoints/federation/show-instance.ts +++ b/packages/backend/src/server/api/endpoints/federation/show-instance.ts @@ -46,11 +46,11 @@ export default class extends Endpoint { // eslint- private utilityService: UtilityService, private instanceEntityService: InstanceEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const instance = await this.instancesRepository .findOneBy({ host: this.utilityService.toPuny(ps.host) }); - return instance ? await this.instanceEntityService.pack(instance, me, token) : null; + return instance ? await this.instanceEntityService.pack(instance, me) : null; }); } } diff --git a/packages/backend/src/server/api/endpoints/federation/stats.ts b/packages/backend/src/server/api/endpoints/federation/stats.ts index c22498d29d..605df455b4 100644 --- a/packages/backend/src/server/api/endpoints/federation/stats.ts +++ b/packages/backend/src/server/api/endpoints/federation/stats.ts @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- private instanceEntityService: InstanceEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const [topSubInstances, topPubInstances, allSubCount, allPubCount] = await Promise.all([ this.instancesRepository.find({ where: { @@ -114,9 +114,9 @@ export default class extends Endpoint { // eslint- const gotPubCount = topPubInstances.map(x => x.followingCount).reduce((a, b) => a + b, 0); return await awaitAll({ - topSubInstances: this.instanceEntityService.packMany(topSubInstances, me, token), + topSubInstances: this.instanceEntityService.packMany(topSubInstances, me), otherFollowersCount: Math.max(0, allSubCount - gotSubCount), - topPubInstances: this.instanceEntityService.packMany(topPubInstances, me, token), + topPubInstances: this.instanceEntityService.packMany(topPubInstances, me), otherFollowingCount: Math.max(0, allPubCount - gotPubCount), }); }); diff --git a/packages/backend/src/server/api/endpoints/federation/users.ts b/packages/backend/src/server/api/endpoints/federation/users.ts index 0bfcc01940..b41138a842 100644 --- a/packages/backend/src/server/api/endpoints/federation/users.ts +++ b/packages/backend/src/server/api/endpoints/federation/users.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.usersRepository.createQueryBuilder('user'), ps.sinceId, ps.untilId) .andWhere('user.host = :host', { host: ps.host }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.userEntityService.packMany(users, me, { schema: 'UserDetailedNotMe', token }); + return await this.userEntityService.packMany(users, me, { schema: 'UserDetailedNotMe' }); }); } } diff --git a/packages/backend/src/server/api/endpoints/flash/create.ts b/packages/backend/src/server/api/endpoints/flash/create.ts index fad424fefa..588de70b7b 100644 --- a/packages/backend/src/server/api/endpoints/flash/create.ts +++ b/packages/backend/src/server/api/endpoints/flash/create.ts @@ -58,7 +58,7 @@ export default class extends Endpoint { // eslint- private flashEntityService: FlashEntityService, private idService: IdService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const flash = await this.flashsRepository.insertOne({ id: this.idService.gen(), userId: me.id, @@ -70,7 +70,7 @@ export default class extends Endpoint { // eslint- visibility: ps.visibility, }); - return await this.flashEntityService.pack(flash, me, token); + return await this.flashEntityService.pack(flash, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/flash/delete.ts b/packages/backend/src/server/api/endpoints/flash/delete.ts index 923d37ca12..271a44f8d5 100644 --- a/packages/backend/src/server/api/endpoints/flash/delete.ts +++ b/packages/backend/src/server/api/endpoints/flash/delete.ts @@ -59,14 +59,14 @@ export default class extends Endpoint { // eslint- private moderationLogService: ModerationLogService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const flash = await this.flashsRepository.findOneBy({ id: ps.flashId }); if (flash == null) { throw new ApiError(meta.errors.noSuchFlash); } - if (!await this.roleService.isModerator(me, token) && flash.userId !== me.id) { + if (!await this.roleService.isModerator(me) && flash.userId !== me.id) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/flash/featured.ts b/packages/backend/src/server/api/endpoints/flash/featured.ts index 62490ac0e7..ad1f35055a 100644 --- a/packages/backend/src/server/api/endpoints/flash/featured.ts +++ b/packages/backend/src/server/api/endpoints/flash/featured.ts @@ -47,12 +47,12 @@ export default class extends Endpoint { // eslint- private flashService: FlashService, private flashEntityService: FlashEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const result = await this.flashService.featured({ offset: ps.offset, limit: ps.limit, }); - return await this.flashEntityService.packMany(result, me, token); + return await this.flashEntityService.packMany(result, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/flash/my-likes.ts b/packages/backend/src/server/api/endpoints/flash/my-likes.ts index 9f3dbb90be..22eae381da 100644 --- a/packages/backend/src/server/api/endpoints/flash/my-likes.ts +++ b/packages/backend/src/server/api/endpoints/flash/my-likes.ts @@ -63,7 +63,7 @@ export default class extends Endpoint { // eslint- private flashLikeEntityService: FlashLikeEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.flashLikesRepository.createQueryBuilder('like'), ps.sinceId, ps.untilId) .andWhere('like.userId = :meId', { meId: me.id }) .leftJoinAndSelect('like.flash', 'flash'); @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return this.flashLikeEntityService.packMany(likes, me, token); + return this.flashLikeEntityService.packMany(likes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/flash/my.ts b/packages/backend/src/server/api/endpoints/flash/my.ts index a0503ca96e..eb1a7d328e 100644 --- a/packages/backend/src/server/api/endpoints/flash/my.ts +++ b/packages/backend/src/server/api/endpoints/flash/my.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private flashEntityService: FlashEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.flashsRepository.createQueryBuilder('flash'), ps.sinceId, ps.untilId) .andWhere('flash.userId = :meId', { meId: me.id }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.flashEntityService.packMany(flashs, me, token); + return await this.flashEntityService.packMany(flashs, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/flash/show.ts b/packages/backend/src/server/api/endpoints/flash/show.ts index 37f009f103..03d9710773 100644 --- a/packages/backend/src/server/api/endpoints/flash/show.ts +++ b/packages/backend/src/server/api/endpoints/flash/show.ts @@ -52,14 +52,14 @@ export default class extends Endpoint { // eslint- private flashEntityService: FlashEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const flash = await this.flashsRepository.findOneBy({ id: ps.flashId }); if (flash == null) { throw new ApiError(meta.errors.noSuchFlash); } - return await this.flashEntityService.pack(flash, me, token); + return await this.flashEntityService.pack(flash, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/create.ts b/packages/backend/src/server/api/endpoints/following/create.ts index 7aed95d55d..db320e7129 100644 --- a/packages/backend/src/server/api/endpoints/following/create.ts +++ b/packages/backend/src/server/api/endpoints/following/create.ts @@ -86,7 +86,7 @@ export default class extends Endpoint { // eslint- private getterService: GetterService, private userFollowingService: UserFollowingService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const follower = me; // 自分自身 @@ -111,7 +111,7 @@ export default class extends Endpoint { // eslint- throw e; } - return await this.userEntityService.pack(followee.id, me, { token }); + return await this.userEntityService.pack(followee.id, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/delete.ts b/packages/backend/src/server/api/endpoints/following/delete.ts index 9b68fc8afc..442352a4d2 100644 --- a/packages/backend/src/server/api/endpoints/following/delete.ts +++ b/packages/backend/src/server/api/endpoints/following/delete.ts @@ -11,8 +11,8 @@ import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; -import { CacheService } from '@/core/CacheService.js'; import { ApiError } from '../../error.js'; +import { CacheService } from '@/core/CacheService.js'; export const meta = { tags: ['following', 'users'], @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- private userFollowingService: UserFollowingService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const follower = me; // Check if the followee is yourself @@ -95,7 +95,7 @@ export default class extends Endpoint { // eslint- await this.userFollowingService.unfollow(follower, followee); - return await this.userEntityService.pack(followee.id, me, { token }); + return await this.userEntityService.pack(followee.id, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/invalidate.ts b/packages/backend/src/server/api/endpoints/following/invalidate.ts index 076d4d40ac..3809bf29b0 100644 --- a/packages/backend/src/server/api/endpoints/following/invalidate.ts +++ b/packages/backend/src/server/api/endpoints/following/invalidate.ts @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- private userFollowingService: UserFollowingService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const followee = me; // Check if the follower is yourself @@ -95,7 +95,7 @@ export default class extends Endpoint { // eslint- await this.userFollowingService.unfollow(follower, followee); - return await this.userEntityService.pack(follower.id, me, { token }); + return await this.userEntityService.pack(follower.id, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts index 2e3b63a7ee..9bcd726b12 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts @@ -60,7 +60,7 @@ export default class extends Endpoint { // eslint- private getterService: GetterService, private userFollowingService: UserFollowingService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { // Fetch followee const followee = await this.getterService.getUser(ps.userId).catch(err => { if (err.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); @@ -76,7 +76,7 @@ export default class extends Endpoint { // eslint- throw err; } - return await this.userEntityService.pack(followee.id, me, { token }); + return await this.userEntityService.pack(followee.id, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/requests/list.ts b/packages/backend/src/server/api/endpoints/following/requests/list.ts index 8c2921ea67..7ec217fdc4 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/list.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/list.ts @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- private followRequestEntityService: FollowRequestEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.followRequestsRepository.createQueryBuilder('request'), ps.sinceId, ps.untilId) .andWhere('request.followeeId = :meId', { meId: me.id }); @@ -77,7 +77,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.followRequestEntityService.packMany(requests, me, token); + return await this.followRequestEntityService.packMany(requests, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/requests/sent.ts b/packages/backend/src/server/api/endpoints/following/requests/sent.ts index 6589b525fc..7f99c228f4 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/sent.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/sent.ts @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- private followRequestEntityService: FollowRequestEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.followRequestsRepository.createQueryBuilder('request'), ps.sinceId, ps.untilId) .andWhere('request.followerId = :meId', { meId: me.id }); @@ -77,7 +77,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.followRequestEntityService.packMany(requests, me, token); + return await this.followRequestEntityService.packMany(requests, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/following/update.ts b/packages/backend/src/server/api/endpoints/following/update.ts index 93f1e286cf..f4ca21856f 100644 --- a/packages/backend/src/server/api/endpoints/following/update.ts +++ b/packages/backend/src/server/api/endpoints/following/update.ts @@ -74,7 +74,7 @@ export default class extends Endpoint { // eslint- private userFollowingService: UserFollowingService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const follower = me; // Check if the follower is yourself @@ -104,7 +104,7 @@ export default class extends Endpoint { // eslint- await this.cacheService.refreshFollowRelationsFor(follower.id); - return await this.userEntityService.pack(follower.id, me, { token }); + return await this.userEntityService.pack(follower.id, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/gallery/featured.ts b/packages/backend/src/server/api/endpoints/gallery/featured.ts index c73f61a86e..abbfb9b83b 100644 --- a/packages/backend/src/server/api/endpoints/gallery/featured.ts +++ b/packages/backend/src/server/api/endpoints/gallery/featured.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, private featuredService: FeaturedService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { let postIds: string[]; if (this.galleryPostsRankingCacheLastFetchedAt !== 0 && (Date.now() - this.galleryPostsRankingCacheLastFetchedAt < 1000 * 60 * 30)) { postIds = this.galleryPostsRankingCache; @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- const posts = await query.getMany(); - return await this.galleryPostEntityService.packMany(posts, me, token); + return await this.galleryPostEntityService.packMany(posts, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/gallery/popular.ts b/packages/backend/src/server/api/endpoints/gallery/popular.ts index 4f6b9bec3c..71b979ab9f 100644 --- a/packages/backend/src/server/api/endpoints/gallery/popular.ts +++ b/packages/backend/src/server/api/endpoints/gallery/popular.ts @@ -45,14 +45,14 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.galleryPostsRepository.createQueryBuilder('post') .andWhere('post.likedCount > 0') .orderBy('post.likedCount', 'DESC'); const posts = await query.limit(10).getMany(); - return await this.galleryPostEntityService.packMany(posts, me, token); + return await this.galleryPostEntityService.packMany(posts, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/gallery/posts.ts b/packages/backend/src/server/api/endpoints/gallery/posts.ts index 4c1de5123d..630b6cede5 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts.ts @@ -49,13 +49,13 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.galleryPostsRepository.createQueryBuilder('post'), ps.sinceId, ps.untilId) .innerJoinAndSelect('post.user', 'user'); const posts = await query.limit(ps.limit).getMany(); - return await this.galleryPostEntityService.packMany(posts, me, token); + return await this.galleryPostEntityService.packMany(posts, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts index 80a8b78945..08abd7fed5 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts @@ -63,7 +63,7 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, private idService: IdService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const files = (await Promise.all(ps.fileIds.map(fileId => this.driveFilesRepository.findOneBy({ id: fileId, @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- fileIds: files.map(file => file.id), })); - return await this.galleryPostEntityService.pack(post, me, token); + return await this.galleryPostEntityService.pack(post, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts b/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts index 79b01bcc37..9854358e3e 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts @@ -59,14 +59,14 @@ export default class extends Endpoint { // eslint- private moderationLogService: ModerationLogService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const post = await this.galleryPostsRepository.findOneBy({ id: ps.postId }); if (post == null) { throw new ApiError(meta.errors.noSuchPost); } - if (!await this.roleService.isModerator(me, token) && post.userId !== me.id) { + if (!await this.roleService.isModerator(me) && post.userId !== me.id) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/show.ts b/packages/backend/src/server/api/endpoints/gallery/posts/show.ts index 6927d754eb..fd637febaa 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/show.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/show.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const post = await this.galleryPostsRepository.findOneBy({ id: ps.postId, }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchPost); } - return await this.galleryPostEntityService.pack(post, me, token); + return await this.galleryPostEntityService.pack(post, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts index 53a6f475b9..d0f9b56863 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { let files: Array | undefined; if (ps.fileIds) { @@ -90,7 +90,7 @@ export default class extends Endpoint { // eslint- const post = await this.galleryPostsRepository.findOneByOrFail({ id: ps.postId }); - return await this.galleryPostEntityService.pack(post, me, token); + return await this.galleryPostEntityService.pack(post, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts index 8b64e3b47f..6d1972456d 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts @@ -77,7 +77,7 @@ export default class extends Endpoint { private userEntityService: UserEntityService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, at) => { + super(meta, paramDef, async (ps, me) => { const token = ps.token; const profile = await this.userProfilesRepository.findOneByOrFail({ userId: me.id }); @@ -120,7 +120,6 @@ export default class extends Endpoint { this.globalEventService.publishMainStream(me.id, 'meUpdated', await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', includeSecrets: true, - token: at, })); return { diff --git a/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts b/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts index 8cb74ee7ad..cd520cff0f 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { if (ps.value === true) { // セキュリティキーがなければパスワードレスを有効にはできない const keyCount = await this.userSecurityKeysRepository.count({ @@ -83,7 +83,6 @@ export default class extends Endpoint { // eslint- this.globalEventService.publishMainStream(me.id, 'meUpdated', await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', includeSecrets: true, - token, })); }); } diff --git a/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts index e47c1d5189..931c8d69b0 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts @@ -57,7 +57,7 @@ export default class extends Endpoint { // eslint- private userAuthService: UserAuthService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, at) => { + super(meta, paramDef, async (ps, me) => { const token = ps.token; const profile = await this.userProfilesRepository.findOneByOrFail({ userId: me.id }); @@ -107,7 +107,6 @@ export default class extends Endpoint { // eslint- this.globalEventService.publishMainStream(me.id, 'meUpdated', await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', includeSecrets: true, - token: at, })); return {}; diff --git a/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts b/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts index 072b804e66..fc5a51f81b 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private userAuthService: UserAuthService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, at) => { + super(meta, paramDef, async (ps, me) => { const token = ps.token; const profile = await this.userProfilesRepository.findOneByOrFail({ userId: me.id }); @@ -85,7 +85,6 @@ export default class extends Endpoint { // eslint- this.globalEventService.publishMainStream(me.id, 'meUpdated', await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', includeSecrets: true, - token: at, })); }); } diff --git a/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts index 52d05c4092..a9f631cfaf 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts @@ -56,7 +56,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const key = await this.userSecurityKeysRepository.findOneBy({ id: ps.credentialId, }); @@ -77,7 +77,6 @@ export default class extends Endpoint { // eslint- this.globalEventService.publishMainStream(me.id, 'meUpdated', await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', includeSecrets: true, - token, })); return {}; diff --git a/packages/backend/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts index 2c8ea3ba63..3e1369079d 100644 --- a/packages/backend/src/server/api/endpoints/i/apps.ts +++ b/packages/backend/src/server/api/endpoints/i/apps.ts @@ -91,7 +91,7 @@ export default class extends Endpoint { // eslint- private readonly cacheService: CacheService, private idService: IdService, ) { - super(meta, paramDef, async (ps, me, at) => { + super(meta, paramDef, async (ps, me) => { const query = this.accessTokensRepository.createQueryBuilder('token') .where('token.userId = :userId', { userId: me.id }) .leftJoinAndSelect('token.app', 'app'); @@ -111,7 +111,7 @@ export default class extends Endpoint { // eslint- const tokens = await query.getMany(); const users = await this.cacheService.getUsers(tokens.flatMap(token => token.granteeIds)); - const packedUsers = await this.userEntityService.packMany(Array.from(users.values()), me, { token: at }); + const packedUsers = await this.userEntityService.packMany(Array.from(users.values()), me); const packedUserMap = new Map(packedUsers.map(u => [u.id, u])); return tokens.map(token => ({ diff --git a/packages/backend/src/server/api/endpoints/i/favorites.ts b/packages/backend/src/server/api/endpoints/i/favorites.ts index 2efc408661..49d47e1624 100644 --- a/packages/backend/src/server/api/endpoints/i/favorites.ts +++ b/packages/backend/src/server/api/endpoints/i/favorites.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private noteFavoriteEntityService: NoteFavoriteEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.noteFavoritesRepository.createQueryBuilder('favorite'), ps.sinceId, ps.untilId) .andWhere('favorite.userId = :meId', { meId: me.id }) .leftJoinAndSelect('favorite.note', 'note'); @@ -62,7 +62,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.noteFavoriteEntityService.packMany(favorites, me, token); + return await this.noteFavoriteEntityService.packMany(favorites, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/gallery/likes.ts b/packages/backend/src/server/api/endpoints/i/gallery/likes.ts index 6c6aa39187..9baa01ae1e 100644 --- a/packages/backend/src/server/api/endpoints/i/gallery/likes.ts +++ b/packages/backend/src/server/api/endpoints/i/gallery/likes.ts @@ -64,7 +64,7 @@ export default class extends Endpoint { // eslint- private galleryLikeEntityService: GalleryLikeEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.galleryLikesRepository.createQueryBuilder('like'), ps.sinceId, ps.untilId) .andWhere('like.userId = :meId', { meId: me.id }) .leftJoinAndSelect('like.post', 'post'); @@ -73,7 +73,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.galleryLikeEntityService.packMany(likes, me, token); + return await this.galleryLikeEntityService.packMany(likes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/gallery/posts.ts b/packages/backend/src/server/api/endpoints/i/gallery/posts.ts index c363b2044f..350491a73a 100644 --- a/packages/backend/src/server/api/endpoints/i/gallery/posts.ts +++ b/packages/backend/src/server/api/endpoints/i/gallery/posts.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.galleryPostsRepository.createQueryBuilder('post'), ps.sinceId, ps.untilId) .andWhere('post.userId = :meId', { meId: me.id }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.galleryPostEntityService.packMany(posts, me, token); + return await this.galleryPostEntityService.packMany(posts, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts b/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts index f59325a0a1..3821b5a20e 100644 --- a/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts +++ b/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts @@ -71,7 +71,7 @@ export default class extends Endpoint { // eslint- private notificationEntityService: NotificationEntityService, private notificationService: NotificationService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const EXTRA_LIMIT = 100; // includeTypes が空の場合はクエリしない @@ -191,7 +191,7 @@ export default class extends Endpoint { // eslint- // this matches the logic in NotificationService and it's what MkPagination expects if (ps.sinceId && !ps.untilId) groupedNotifications.reverse(); - return await this.notificationEntityService.packGroupedMany(groupedNotifications, me.id, token); + return await this.notificationEntityService.packGroupedMany(groupedNotifications, me.id); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/notifications.ts b/packages/backend/src/server/api/endpoints/i/notifications.ts index 59e06e72d0..f5a48b2f69 100644 --- a/packages/backend/src/server/api/endpoints/i/notifications.ts +++ b/packages/backend/src/server/api/endpoints/i/notifications.ts @@ -69,7 +69,7 @@ export default class extends Endpoint { // eslint- private notificationEntityService: NotificationEntityService, private notificationService: NotificationService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { // includeTypes が空の場合はクエリしない if (ps.includeTypes && ps.includeTypes.length === 0) { return []; @@ -95,7 +95,7 @@ export default class extends Endpoint { // eslint- this.notificationService.readAllNotification(me.id); } - return await this.notificationEntityService.packMany(notifications, me.id, token); + return await this.notificationEntityService.packMany(notifications, me.id); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/page-likes.ts b/packages/backend/src/server/api/endpoints/i/page-likes.ts index 492e95116f..19baa9726d 100644 --- a/packages/backend/src/server/api/endpoints/i/page-likes.ts +++ b/packages/backend/src/server/api/endpoints/i/page-likes.ts @@ -63,7 +63,7 @@ export default class extends Endpoint { // eslint- private pageLikeEntityService: PageLikeEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.pageLikesRepository.createQueryBuilder('like'), ps.sinceId, ps.untilId) .andWhere('like.userId = :meId', { meId: me.id }) .leftJoinAndSelect('like.page', 'page'); @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return this.pageLikeEntityService.packMany(likes, me, token); + return this.pageLikeEntityService.packMany(likes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/pages.ts b/packages/backend/src/server/api/endpoints/i/pages.ts index dcb4b42d5d..65a19ac5ab 100644 --- a/packages/backend/src/server/api/endpoints/i/pages.ts +++ b/packages/backend/src/server/api/endpoints/i/pages.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private pageEntityService: PageEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.pagesRepository.createQueryBuilder('page'), ps.sinceId, ps.untilId) .andWhere('page.userId = :meId', { meId: me.id }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.pageEntityService.packMany(pages, me, token); + return await this.pageEntityService.packMany(pages); }); } } diff --git a/packages/backend/src/server/api/endpoints/i/pin.ts b/packages/backend/src/server/api/endpoints/i/pin.ts index 0729c17ae6..e324485277 100644 --- a/packages/backend/src/server/api/endpoints/i/pin.ts +++ b/packages/backend/src/server/api/endpoints/i/pin.ts @@ -64,7 +64,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private notePiningService: NotePiningService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { await this.notePiningService.addPinned(me, ps.noteId).catch(err => { if (err.id === '70c4e51f-5bea-449c-a030-53bee3cce202') throw new ApiError(meta.errors.noSuchNote); if (err.id === '15a018eb-58e5-4da1-93be-330fcc5e4e1a') throw new ApiError(meta.errors.pinLimitExceeded); @@ -74,7 +74,6 @@ export default class extends Endpoint { // eslint- return await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', - token, }); }); } diff --git a/packages/backend/src/server/api/endpoints/i/shared-access/list.ts b/packages/backend/src/server/api/endpoints/i/shared-access/list.ts index 3c3414f91d..f57fdd1936 100644 --- a/packages/backend/src/server/api/endpoints/i/shared-access/list.ts +++ b/packages/backend/src/server/api/endpoints/i/shared-access/list.ts @@ -72,14 +72,14 @@ export default class extends Endpoint { // eslint- private readonly userEntityService: UserEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const tokens = await this.accessTokensRepository .createQueryBuilder('token') .where(':meIdAsList <@ token.granteeIds', { meIdAsList: [me.id] }) .getMany(); const userIds = tokens.map(token => token.userId); - const packedUsers = await this.userEntityService.packMany(userIds, me, { token }); + const packedUsers = await this.userEntityService.packMany(userIds, me); const packedUserMap = new Map(packedUsers.map(u => [u.id, u])); return tokens.map(token => ({ diff --git a/packages/backend/src/server/api/endpoints/i/unpin.ts b/packages/backend/src/server/api/endpoints/i/unpin.ts index 5800f9cf9d..e88e3fbc01 100644 --- a/packages/backend/src/server/api/endpoints/i/unpin.ts +++ b/packages/backend/src/server/api/endpoints/i/unpin.ts @@ -51,7 +51,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private notePiningService: NotePiningService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { await this.notePiningService.removePinned(me, ps.noteId).catch(err => { if (err.id === 'b302d4cf-c050-400a-bbb3-be208681f40c') throw new ApiError(meta.errors.noSuchNote); throw err; @@ -59,7 +59,6 @@ export default class extends Endpoint { // eslint- return await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', - token, }); }); } diff --git a/packages/backend/src/server/api/endpoints/i/update-email.ts b/packages/backend/src/server/api/endpoints/i/update-email.ts index 51662cd801..dc07556760 100644 --- a/packages/backend/src/server/api/endpoints/i/update-email.ts +++ b/packages/backend/src/server/api/endpoints/i/update-email.ts @@ -80,7 +80,7 @@ export default class extends Endpoint { // eslint- private userAuthService: UserAuthService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, at) => { + super(meta, paramDef, async (ps, me) => { const token = ps.token; const profile = await this.userProfilesRepository.findOneByOrFail({ userId: me.id }); @@ -119,7 +119,6 @@ export default class extends Endpoint { // eslint- const iObj = await this.userEntityService.pack(me.id, me, { schema: 'MeDetailed', includeSecrets: true, - token: at, }); // Publish meUpdated event diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts index 87f078cd43..ba61d19300 100644 --- a/packages/backend/src/server/api/endpoints/i/update.ts +++ b/packages/backend/src/server/api/endpoints/i/update.ts @@ -629,7 +629,6 @@ export default class extends Endpoint { // eslint- const iObj = await this.userEntityService.pack(user.id, user, { schema: 'MeDetailed', includeSecrets: isSecure, - token, }); const updatedProfile = await this.userProfilesRepository.findOneByOrFail({ userId: user.id }); diff --git a/packages/backend/src/server/api/endpoints/invite/create.ts b/packages/backend/src/server/api/endpoints/invite/create.ts index b14c0e7b10..f607a35515 100644 --- a/packages/backend/src/server/api/endpoints/invite/create.ts +++ b/packages/backend/src/server/api/endpoints/invite/create.ts @@ -58,7 +58,7 @@ export default class extends Endpoint { // eslint- private idService: IdService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const policies = await this.roleService.getUserPolicies(me.id); if (policies.inviteLimit) { @@ -80,7 +80,7 @@ export default class extends Endpoint { // eslint- code: generateInviteCode(), }); - return await this.inviteCodeEntityService.pack(ticket, me, token); + return await this.inviteCodeEntityService.pack(ticket, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/invite/delete.ts b/packages/backend/src/server/api/endpoints/invite/delete.ts index dea7dc2726..d15d400e9b 100644 --- a/packages/backend/src/server/api/endpoints/invite/delete.ts +++ b/packages/backend/src/server/api/endpoints/invite/delete.ts @@ -60,9 +60,9 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const ticket = await this.registrationTicketsRepository.findOneBy({ id: ps.inviteId }); - const isModerator = await this.roleService.isModerator(me, token); + const isModerator = await this.roleService.isModerator(me); if (ticket == null) { throw new ApiError(meta.errors.noSuchCode); diff --git a/packages/backend/src/server/api/endpoints/invite/list.ts b/packages/backend/src/server/api/endpoints/invite/list.ts index b4a635a47b..12e3873304 100644 --- a/packages/backend/src/server/api/endpoints/invite/list.ts +++ b/packages/backend/src/server/api/endpoints/invite/list.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private inviteCodeEntityService: InviteCodeEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.registrationTicketsRepository.createQueryBuilder('ticket'), ps.sinceId, ps.untilId) .andWhere('ticket.createdById = :meId', { meId: me.id }) .leftJoinAndSelect('ticket.createdBy', 'createdBy') @@ -63,7 +63,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.inviteCodeEntityService.packMany(tickets, me, token); + return await this.inviteCodeEntityService.packMany(tickets, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/mute/list.ts b/packages/backend/src/server/api/endpoints/mute/list.ts index 983f842cf4..3efbe349e0 100644 --- a/packages/backend/src/server/api/endpoints/mute/list.ts +++ b/packages/backend/src/server/api/endpoints/mute/list.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private mutingEntityService: MutingEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.mutingsRepository.createQueryBuilder('muting'), ps.sinceId, ps.untilId) .andWhere('muting.muterId = :meId', { meId: me.id }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.mutingEntityService.packMany(mutings, me, token); + return await this.mutingEntityService.packMany(mutings, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/bubble-timeline.ts b/packages/backend/src/server/api/endpoints/notes/bubble-timeline.ts index b535283e4b..cd97a7773b 100644 --- a/packages/backend/src/server/api/endpoints/notes/bubble-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/bubble-timeline.ts @@ -67,7 +67,7 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private activeUsersChart: ActiveUsersChart, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const policies = await this.roleService.getUserPolicies(me ? me.id : null); if (!policies.btlAvailable) { throw new ApiError(meta.errors.btlDisabled); @@ -126,7 +126,7 @@ export default class extends Endpoint { // eslint- }); } - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/children.ts b/packages/backend/src/server/api/endpoints/notes/children.ts index d3865b40c3..8a5a203d80 100644 --- a/packages/backend/src/server/api/endpoints/notes/children.ts +++ b/packages/backend/src/server/api/endpoints/notes/children.ts @@ -55,7 +55,7 @@ export default class extends Endpoint { // eslint- private noteEntityService: NoteEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) .andWhere(new Brackets(qb => { qb.orWhere('note.replyId = :noteId'); @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- const notes = await query.getMany(); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/clips.ts b/packages/backend/src/server/api/endpoints/notes/clips.ts index 36b00b1193..b3dcdcef12 100644 --- a/packages/backend/src/server/api/endpoints/notes/clips.ts +++ b/packages/backend/src/server/api/endpoints/notes/clips.ts @@ -62,7 +62,7 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, private getterService: GetterService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const note = await this.getterService.getNote(ps.noteId).catch(err => { if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); throw err; @@ -77,7 +77,7 @@ export default class extends Endpoint { // eslint- isPublic: true, }); - return await this.clipEntityService.packMany(clips, me, token); + return await this.clipEntityService.packMany(clips, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/conversation.ts b/packages/backend/src/server/api/endpoints/notes/conversation.ts index e54663794e..80aea580ec 100644 --- a/packages/backend/src/server/api/endpoints/notes/conversation.ts +++ b/packages/backend/src/server/api/endpoints/notes/conversation.ts @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- private noteEntityService: NoteEntityService, private getterService: GetterService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const note = await this.getterService.getNote(ps.noteId).catch(err => { if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); throw err; @@ -93,10 +93,10 @@ export default class extends Endpoint { // eslint- } if (note.hasPoll) { - return await this.noteEntityService.packMany(conversation, me, token, { detail: true }); + return await this.noteEntityService.packMany(conversation, me, { detail: true }); } - return await this.noteEntityService.packMany(conversation, me, token); + return await this.noteEntityService.packMany(conversation, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 9caef1cf2b..d6fccd1b84 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -264,7 +264,7 @@ export default class extends Endpoint { // eslint- private noteCreateService: NoteCreateService, private readonly noteVisibilityService: NoteVisibilityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { if (ps.text && ps.text.length > this.config.maxNoteLength) { throw new ApiError(meta.errors.maxLength); } @@ -417,7 +417,7 @@ export default class extends Endpoint { // eslint- }); return { - createdNote: await this.noteEntityService.pack(note, me, token), + createdNote: await this.noteEntityService.pack(note, me), }; } catch (e) { // TODO: 他のErrorもここでキャッチしてエラーメッセージを当てるようにしたい diff --git a/packages/backend/src/server/api/endpoints/notes/delete.ts b/packages/backend/src/server/api/endpoints/notes/delete.ts index 710b9d1ad2..9d7c9a9081 100644 --- a/packages/backend/src/server/api/endpoints/notes/delete.ts +++ b/packages/backend/src/server/api/endpoints/notes/delete.ts @@ -59,13 +59,13 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private noteDeleteService: NoteDeleteService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const note = await this.getterService.getNote(ps.noteId).catch(err => { if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); throw err; }); - if (!await this.roleService.isModerator(me, token) && (note.userId !== me.id)) { + if (!await this.roleService.isModerator(me) && (note.userId !== me.id)) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/notes/edit.ts b/packages/backend/src/server/api/endpoints/notes/edit.ts index e49cece167..717dab59e1 100644 --- a/packages/backend/src/server/api/endpoints/notes/edit.ts +++ b/packages/backend/src/server/api/endpoints/notes/edit.ts @@ -314,7 +314,7 @@ export default class extends Endpoint { // eslint- private noteEditService: NoteEditService, private readonly noteVisibilityService: NoteVisibilityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { if (ps.text && ps.text.length > this.config.maxNoteLength) { throw new ApiError(meta.errors.maxLength); } @@ -472,7 +472,7 @@ export default class extends Endpoint { // eslint- }); return { - createdNote: await this.noteEntityService.pack(note, me, token), + createdNote: await this.noteEntityService.pack(note, me), }; } catch (e) { // TODO: 他のErrorもここでキャッチしてエラーメッセージを当てるようにしたい diff --git a/packages/backend/src/server/api/endpoints/notes/featured.ts b/packages/backend/src/server/api/endpoints/notes/featured.ts index 9b6a9e1178..ac6dfe8da6 100644 --- a/packages/backend/src/server/api/endpoints/notes/featured.ts +++ b/packages/backend/src/server/api/endpoints/notes/featured.ts @@ -73,7 +73,7 @@ export default class extends Endpoint { // eslint- private queryService: QueryService, private readonly roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const policies = await this.roleService.getUserPolicies(me ? me.id : null); if (!policies.ltlAvailable) { throw new ApiError(meta.errors.ltlDisabled); @@ -126,7 +126,7 @@ export default class extends Endpoint { // eslint- notes.sort((a, b) => a.id > b.id ? -1 : 1); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/following.ts b/packages/backend/src/server/api/endpoints/notes/following.ts index 62a46b24f5..8c2938b3bd 100644 --- a/packages/backend/src/server/api/endpoints/notes/following.ts +++ b/packages/backend/src/server/api/endpoints/notes/following.ts @@ -81,7 +81,7 @@ export default class extends Endpoint { // eslint- private readonly queryService: QueryService, private readonly activeUsersChart: ActiveUsersChart, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { if (ps.includeReplies && ps.filesOnly) throw new ApiError(meta.errors.bothWithRepliesAndWithFiles); if (ps.list === 'followers' && ps.includeNonPublic) throw new ApiError(meta.errors.bothWithFollowersAndIncludeNonPublic); @@ -170,7 +170,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(notes, me, token, { skipHide: true }); + return await this.noteEntityService.packMany(notes, me, { skipHide: true }); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts index 329fac4f10..601c5e7a48 100644 --- a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts @@ -70,7 +70,7 @@ export default class extends Endpoint { // eslint- private activeUsersChart: ActiveUsersChart, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const policies = await this.roleService.getUserPolicies(me ? me.id : null); if (!policies.gtlAvailable) { throw new ApiError(meta.errors.gtlDisabled); @@ -118,7 +118,7 @@ export default class extends Endpoint { // eslint- }); } - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts index 77bd0cbc83..7ad1b0bf6e 100644 --- a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -95,7 +95,7 @@ export default class extends Endpoint { // eslint- private userFollowingService: UserFollowingService, private fanoutTimelineEndpointService: FanoutTimelineEndpointService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -121,7 +121,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); } let timelineConfig: FanoutTimelineName[]; @@ -151,7 +151,6 @@ export default class extends Endpoint { // eslint- limit: ps.limit, allowPartial: ps.allowPartial, me, - token, redisTimelines: timelineConfig, useDbFallback: this.serverSettings.enableFanoutTimelineDbFallback, excludePureRenotes: !ps.withRenotes, diff --git a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts index d79f08dd44..73725f9af2 100644 --- a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts @@ -86,7 +86,7 @@ export default class extends Endpoint { // eslint- private queryService: QueryService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -114,7 +114,7 @@ export default class extends Endpoint { // eslint- }); } - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); } const timeline = await this.fanoutTimelineEndpointService.timeline({ @@ -123,7 +123,6 @@ export default class extends Endpoint { // eslint- limit: ps.limit, allowPartial: ps.allowPartial, me, - token, useDbFallback: this.serverSettings.enableFanoutTimelineDbFallback, redisTimelines: ps.withFiles ? ['localTimelineWithFiles'] diff --git a/packages/backend/src/server/api/endpoints/notes/mentions.ts b/packages/backend/src/server/api/endpoints/notes/mentions.ts index 333aa28a53..05d0a5aebd 100644 --- a/packages/backend/src/server/api/endpoints/notes/mentions.ts +++ b/packages/backend/src/server/api/endpoints/notes/mentions.ts @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- private queryService: QueryService, private readonly activeUsersChart: ActiveUsersChart, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) .innerJoin(qb => { qb @@ -114,7 +114,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(mentions, me, token); + return await this.noteEntityService.packMany(mentions, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts b/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts index a7d10d8c62..6e5fdaa281 100644 --- a/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts +++ b/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts @@ -78,7 +78,7 @@ export default class extends Endpoint { // eslint- private readonly queryService: QueryService, private readonly roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.pollsRepository.createQueryBuilder('poll') .innerJoinAndSelect('poll.note', 'note') .innerJoinAndSelect('note.user', 'user') @@ -175,7 +175,7 @@ export default class extends Endpoint { // eslint- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const notes = polls.map(poll => poll.note!); - return await this.noteEntityService.packMany(notes, me, token, { + return await this.noteEntityService.packMany(notes, me, { detail: true, }); }); diff --git a/packages/backend/src/server/api/endpoints/notes/polls/refresh.ts b/packages/backend/src/server/api/endpoints/notes/polls/refresh.ts index 9f6ac4b603..69e718fc81 100644 --- a/packages/backend/src/server/api/endpoints/notes/polls/refresh.ts +++ b/packages/backend/src/server/api/endpoints/notes/polls/refresh.ts @@ -71,7 +71,7 @@ export default class extends Endpoint { // eslint- private apQuestionService: ApQuestionService, private noteEntityService: NoteEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { // Get note const note = await this.getterService.getNote(ps.noteId).catch(err => { if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); @@ -96,7 +96,7 @@ export default class extends Endpoint { // eslint- await this.apQuestionService.updateQuestion(note.uri); - return await this.noteEntityService.pack(note, me, token, { + return await this.noteEntityService.pack(note, me, { detail: true, }); }); diff --git a/packages/backend/src/server/api/endpoints/notes/reactions.ts b/packages/backend/src/server/api/endpoints/notes/reactions.ts index c8fa232bf7..f2355518a2 100644 --- a/packages/backend/src/server/api/endpoints/notes/reactions.ts +++ b/packages/backend/src/server/api/endpoints/notes/reactions.ts @@ -66,7 +66,7 @@ export default class extends Endpoint { // eslint- private noteReactionEntityService: NoteReactionEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.noteReactionsRepository.createQueryBuilder('reaction'), ps.sinceId, ps.untilId) .andWhere('reaction.noteId = :noteId', { noteId: ps.noteId }) .leftJoinAndSelect('reaction.user', 'user') @@ -85,7 +85,7 @@ export default class extends Endpoint { // eslint- const reactions = await query.limit(ps.limit).getMany(); - return await this.noteReactionEntityService.packMany(reactions, me, token); + return await this.noteReactionEntityService.packMany(reactions, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/renotes.ts b/packages/backend/src/server/api/endpoints/notes/renotes.ts index 138fb8e0b4..cc38e9a405 100644 --- a/packages/backend/src/server/api/endpoints/notes/renotes.ts +++ b/packages/backend/src/server/api/endpoints/notes/renotes.ts @@ -66,7 +66,7 @@ export default class extends Endpoint { // eslint- private queryService: QueryService, private getterService: GetterService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const note = await this.getterService.getNote(ps.noteId).catch(err => { if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); throw err; @@ -102,7 +102,7 @@ export default class extends Endpoint { // eslint- const renotes = await query.limit(ps.limit).getMany(); - return await this.noteEntityService.packMany(renotes, me, token); + return await this.noteEntityService.packMany(renotes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/replies.ts b/packages/backend/src/server/api/endpoints/notes/replies.ts index be29803523..d6142b581a 100644 --- a/packages/backend/src/server/api/endpoints/notes/replies.ts +++ b/packages/backend/src/server/api/endpoints/notes/replies.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private noteEntityService: NoteEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) .andWhere('note.replyId = :replyId', { replyId: ps.noteId }) .innerJoinAndSelect('note.user', 'user') @@ -72,7 +72,7 @@ export default class extends Endpoint { // eslint- const timeline = await query.getMany(); - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/schedule/list.ts b/packages/backend/src/server/api/endpoints/notes/schedule/list.ts index b1eebebc0e..cbf3a961c0 100644 --- a/packages/backend/src/server/api/endpoints/notes/schedule/list.ts +++ b/packages/backend/src/server/api/endpoints/notes/schedule/list.ts @@ -7,7 +7,7 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; import { DI } from '@/di-symbols.js'; -import type { MiNote, MiUser, MiNoteSchedule, NoteScheduleRepository, NotesRepository, MiAccessToken } from '@/models/_.js'; +import type { MiNote, MiUser, MiNoteSchedule, NoteScheduleRepository, NotesRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; @@ -91,11 +91,11 @@ export default class extends Endpoint { // eslint- private driveFileEntityService: DriveFileEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.noteScheduleRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) .andWhere('note.userId = :userId', { userId: me.id }); const scheduleNotes = await query.limit(ps.limit).getMany(); - const user = await this.userEntityService.pack(me, me, { token }); + const user = await this.userEntityService.pack(me, me); const scheduleNotesPack: { id: string; note: { @@ -124,7 +124,7 @@ export default class extends Endpoint { // eslint- user: user, visibility: item.note.visibility ?? 'public', reactionAcceptance: item.note.reactionAcceptance ?? null, - visibleUsers: item.note.visibleUsers ? await this.userEntityService.packMany(item.note.visibleUsers.map(u => u.id), me, { token }) : [], + visibleUsers: item.note.visibleUsers ? await this.userEntityService.packMany(item.note.visibleUsers.map(u => u.id), me) : [], fileIds: item.note.files ? item.note.files : [], files: await this.driveFileEntityService.packManyByIds(item.note.files), createdAt: item.scheduledAt.toISOString(), @@ -146,13 +146,12 @@ export default class extends Endpoint { // eslint- private async fetchNote( id: MiNote['id'] | null | undefined, me: MiUser, - token?: MiAccessToken | null, ): Promise | null> { if (id) { const note = await this.notesRepository.findOneBy({ id }); if (note) { note.reactionAndUserPairCache ??= []; - return this.noteEntityService.pack(note, me, token); + return this.noteEntityService.pack(note, me); } } return null; diff --git a/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts b/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts index 326100a63e..fa962feca7 100644 --- a/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts +++ b/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts @@ -81,7 +81,7 @@ export default class extends Endpoint { // eslint- private noteEntityService: NoteEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) .andWhere(new Brackets(qb => qb .orWhere('note.visibility = \'public\'') @@ -159,7 +159,7 @@ export default class extends Endpoint { // eslint- // Search notes const notes = await query.getMany(); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/search.ts b/packages/backend/src/server/api/endpoints/notes/search.ts index 55b7274ff8..f46f4d2adb 100644 --- a/packages/backend/src/server/api/endpoints/notes/search.ts +++ b/packages/backend/src/server/api/endpoints/notes/search.ts @@ -73,7 +73,7 @@ export default class extends Endpoint { // eslint- private searchService: SearchService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const policies = await this.roleService.getUserPolicies(me ? me.id : null); if (!policies.canSearchNotes) { throw new ApiError(meta.errors.unavailable); @@ -91,7 +91,7 @@ export default class extends Endpoint { // eslint- limit: ps.limit, }); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/notes/show.ts b/packages/backend/src/server/api/endpoints/notes/show.ts index 00e16124bb..44e7137f29 100644 --- a/packages/backend/src/server/api/endpoints/notes/show.ts +++ b/packages/backend/src/server/api/endpoints/notes/show.ts @@ -60,7 +60,7 @@ export default class extends Endpoint { // eslint- private noteEntityService: NoteEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = await this.notesRepository.createQueryBuilder('note') .where('note.id = :noteId', { noteId: ps.noteId }) .innerJoinAndSelect('note.user', 'user'); @@ -80,7 +80,7 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.signinRequired); } - return await this.noteEntityService.pack(note, me, token, { + return await this.noteEntityService.pack(note, me, { detail: true, }); }); diff --git a/packages/backend/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts index 0c14546d77..27ba7399a7 100644 --- a/packages/backend/src/server/api/endpoints/notes/timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/timeline.ts @@ -76,7 +76,7 @@ export default class extends Endpoint { // eslint- private userFollowingService: UserFollowingService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -94,7 +94,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); } const timeline = this.fanoutTimelineEndpointService.timeline({ diff --git a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts index ec24ff7367..7fb671a446 100644 --- a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts @@ -88,7 +88,7 @@ export default class extends Endpoint { // eslint- private fanoutTimelineEndpointService: FanoutTimelineEndpointService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -114,7 +114,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); } const timeline = await this.fanoutTimelineEndpointService.timeline({ @@ -123,7 +123,6 @@ export default class extends Endpoint { // eslint- limit: ps.limit, allowPartial: ps.allowPartial, me, - token, useDbFallback: this.serverSettings.enableFanoutTimelineDbFallback, redisTimelines: ps.withFiles ? [`userListTimelineWithFiles:${list.id}`] : [`userListTimeline:${list.id}`], excludePureRenotes: !ps.withRenotes, diff --git a/packages/backend/src/server/api/endpoints/page-push.ts b/packages/backend/src/server/api/endpoints/page-push.ts index 22b44a033a..61f9862734 100644 --- a/packages/backend/src/server/api/endpoints/page-push.ts +++ b/packages/backend/src/server/api/endpoints/page-push.ts @@ -49,7 +49,7 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private globalEventService: GlobalEventService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const page = await this.pagesRepository.findOneBy({ id: ps.pageId }); if (page == null) { throw new ApiError(meta.errors.noSuchPage); @@ -62,7 +62,6 @@ export default class extends Endpoint { // eslint- userId: me.id, user: await this.userEntityService.pack(me.id, { id: page.userId }, { schema: 'UserDetailed', - token, }), }); }); diff --git a/packages/backend/src/server/api/endpoints/pages/create.ts b/packages/backend/src/server/api/endpoints/pages/create.ts index fb4286d143..1f3ad9281e 100644 --- a/packages/backend/src/server/api/endpoints/pages/create.ts +++ b/packages/backend/src/server/api/endpoints/pages/create.ts @@ -80,7 +80,7 @@ export default class extends Endpoint { // eslint- private pageEntityService: PageEntityService, private idService: IdService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { let eyeCatchingImage = null; if (ps.eyeCatchingImageId != null) { eyeCatchingImage = await this.driveFilesRepository.findOneBy({ @@ -119,7 +119,7 @@ export default class extends Endpoint { // eslint- font: ps.font, })); - return await this.pageEntityService.pack(page, me, token); + return await this.pageEntityService.pack(page, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/pages/delete.ts b/packages/backend/src/server/api/endpoints/pages/delete.ts index 51705306a2..c95f8ecf6b 100644 --- a/packages/backend/src/server/api/endpoints/pages/delete.ts +++ b/packages/backend/src/server/api/endpoints/pages/delete.ts @@ -60,14 +60,14 @@ export default class extends Endpoint { // eslint- private moderationLogService: ModerationLogService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const page = await this.pagesRepository.findOneBy({ id: ps.pageId }); if (page == null) { throw new ApiError(meta.errors.noSuchPage); } - if (!await this.roleService.isModerator(me, token) && page.userId !== me.id) { + if (!await this.roleService.isModerator(me) && page.userId !== me.id) { throw new ApiError(meta.errors.accessDenied); } diff --git a/packages/backend/src/server/api/endpoints/pages/featured.ts b/packages/backend/src/server/api/endpoints/pages/featured.ts index 6c94757014..1886e7be28 100644 --- a/packages/backend/src/server/api/endpoints/pages/featured.ts +++ b/packages/backend/src/server/api/endpoints/pages/featured.ts @@ -45,7 +45,7 @@ export default class extends Endpoint { // eslint- private pageEntityService: PageEntityService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.pagesRepository.createQueryBuilder('page') .where('page.visibility = \'public\'') .andWhere('page.likedCount > 0') @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- const pages = await query.limit(10).getMany(); - return await this.pageEntityService.packMany(pages, me, token); + return await this.pageEntityService.packMany(pages, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/renote-mute/list.ts b/packages/backend/src/server/api/endpoints/renote-mute/list.ts index 998e5e2984..aabee237f4 100644 --- a/packages/backend/src/server/api/endpoints/renote-mute/list.ts +++ b/packages/backend/src/server/api/endpoints/renote-mute/list.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { // eslint- private renoteMutingEntityService: RenoteMutingEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.renoteMutingsRepository.createQueryBuilder('muting'), ps.sinceId, ps.untilId) .andWhere('muting.muterId = :meId', { meId: me.id }); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.renoteMutingEntityService.packMany(mutings, me, token); + return await this.renoteMutingEntityService.packMany(mutings, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/reversi/invitations.ts b/packages/backend/src/server/api/endpoints/reversi/invitations.ts index 635cb48345..b5abad73e2 100644 --- a/packages/backend/src/server/api/endpoints/reversi/invitations.ts +++ b/packages/backend/src/server/api/endpoints/reversi/invitations.ts @@ -36,10 +36,10 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private reversiService: ReversiService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const invitations = await this.reversiService.getInvitations(me); - return await this.userEntityService.packMany(invitations, me, { token }); + return await this.userEntityService.packMany(invitations, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/roles/notes.ts b/packages/backend/src/server/api/endpoints/roles/notes.ts index bdbfd6b901..a061bba6de 100644 --- a/packages/backend/src/server/api/endpoints/roles/notes.ts +++ b/packages/backend/src/server/api/endpoints/roles/notes.ts @@ -77,7 +77,7 @@ export default class extends Endpoint { // eslint- private fanoutTimelineService: FanoutTimelineService, private readonly activeUsersChart: ActiveUsersChart, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); @@ -124,7 +124,7 @@ export default class extends Endpoint { // eslint- this.activeUsersChart.read(me); }); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/clips.ts b/packages/backend/src/server/api/endpoints/users/clips.ts index eb208bdc7f..a457a6c434 100644 --- a/packages/backend/src/server/api/endpoints/users/clips.ts +++ b/packages/backend/src/server/api/endpoints/users/clips.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private clipEntityService: ClipEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.clipsRepository.createQueryBuilder('clip'), ps.sinceId, ps.untilId) .andWhere('clip.userId = :userId', { userId: ps.userId }) .andWhere('clip.isPublic = true'); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.clipEntityService.packMany(clips, me, token); + return await this.clipEntityService.packMany(clips, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/featured-notes.ts b/packages/backend/src/server/api/endpoints/users/featured-notes.ts index e86d76ea77..cf328ad71c 100644 --- a/packages/backend/src/server/api/endpoints/users/featured-notes.ts +++ b/packages/backend/src/server/api/endpoints/users/featured-notes.ts @@ -58,7 +58,7 @@ export default class extends Endpoint { // eslint- private cacheService: CacheService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const userIdsWhoBlockingMe = me ? await this.cacheService.userBlockedCache.fetch(me.id) : new Set(); // early return if me is blocked by requesting user @@ -101,7 +101,7 @@ export default class extends Endpoint { // eslint- notes.sort((a, b) => a.id > b.id ? -1 : 1); - return await this.noteEntityService.packMany(notes, me, token); + return await this.noteEntityService.packMany(notes, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/flashs.ts b/packages/backend/src/server/api/endpoints/users/flashs.ts index 6acb1cb8f4..2b05f617bd 100644 --- a/packages/backend/src/server/api/endpoints/users/flashs.ts +++ b/packages/backend/src/server/api/endpoints/users/flashs.ts @@ -53,7 +53,7 @@ export default class extends Endpoint { private flashEntityService: FlashEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.flashsRepository.createQueryBuilder('flash'), ps.sinceId, ps.untilId) .andWhere('flash.userId = :userId', { userId: ps.userId }) .andWhere('flash.visibility = \'public\''); @@ -62,7 +62,7 @@ export default class extends Endpoint { .limit(ps.limit) .getMany(); - return await this.flashEntityService.packMany(flashs, me, token); + return await this.flashEntityService.packMany(flashs, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/followers.ts b/packages/backend/src/server/api/endpoints/users/followers.ts index 04d896f4ed..82ce282bfc 100644 --- a/packages/backend/src/server/api/endpoints/users/followers.ts +++ b/packages/backend/src/server/api/endpoints/users/followers.ts @@ -92,7 +92,7 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const user = await this.usersRepository.findOneBy(ps.userId != null ? { id: ps.userId } : { usernameLower: ps.username!.toLowerCase(), host: this.utilityService.toPunyNullable(ps.host) ?? IsNull() }); @@ -103,7 +103,7 @@ export default class extends Endpoint { // eslint- const profile = await this.userProfilesRepository.findOneByOrFail({ userId: user.id }); - if (profile.followersVisibility !== 'public' && !await this.roleService.isModerator(me, token)) { + if (profile.followersVisibility !== 'public' && !await this.roleService.isModerator(me)) { if (profile.followersVisibility === 'private') { if (me == null || (me.id !== user.id)) { throw new ApiError(meta.errors.forbidden); @@ -128,7 +128,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.followingEntityService.packMany(followings, me, token, { populateFollower: true }); + return await this.followingEntityService.packMany(followings, me, { populateFollower: true }); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/following.ts b/packages/backend/src/server/api/endpoints/users/following.ts index a71e8abe68..80f0b0c484 100644 --- a/packages/backend/src/server/api/endpoints/users/following.ts +++ b/packages/backend/src/server/api/endpoints/users/following.ts @@ -101,7 +101,7 @@ export default class extends Endpoint { // eslint- private roleService: RoleService, private readonly cacheService: CacheService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const user = await this.usersRepository.findOneBy(ps.userId != null ? { id: ps.userId } : { usernameLower: ps.username!.toLowerCase(), host: this.utilityService.toPunyNullable(ps.host) ?? IsNull() }); @@ -112,7 +112,7 @@ export default class extends Endpoint { // eslint- const profile = await this.userProfilesRepository.findOneByOrFail({ userId: user.id }); - if (profile.followingVisibility !== 'public' && !await this.roleService.isModerator(me, token)) { + if (profile.followingVisibility !== 'public' && !await this.roleService.isModerator(me)) { if (profile.followingVisibility === 'private') { if (me == null || (me.id !== user.id)) { throw new ApiError(meta.errors.forbidden); @@ -150,7 +150,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.followingEntityService.packMany(followings, me, token, { populateFollowee: true }); + return await this.followingEntityService.packMany(followings, me, { populateFollowee: true }); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts index 0077d5f65a..931685e32a 100644 --- a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts +++ b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private galleryPostEntityService: GalleryPostEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.galleryPostsRepository.createQueryBuilder('post'), ps.sinceId, ps.untilId) .andWhere('post.userId = :userId', { userId: ps.userId }); @@ -60,7 +60,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.galleryPostEntityService.packMany(posts, me, token); + return await this.galleryPostEntityService.packMany(posts, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts index ccb85f0449..18373fdf07 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts @@ -86,7 +86,7 @@ export default class extends Endpoint { private userListEntityService: UserListEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { // Fetch the list const userList = await this.userListsRepository.findOneBy(!ps.forPublic && me !== null ? { id: ps.listId, @@ -108,7 +108,7 @@ export default class extends Endpoint { .limit(ps.limit) .getMany(); - return this.userListEntityService.packMembershipsMany(memberships, me, token); + return this.userListEntityService.packMembershipsMany(memberships); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts index 82d0cadb92..2822b52ec8 100644 --- a/packages/backend/src/server/api/endpoints/users/notes.ts +++ b/packages/backend/src/server/api/endpoints/users/notes.ts @@ -95,7 +95,7 @@ export default class extends Endpoint { // eslint- private idService: IdService, private fanoutTimelineEndpointService: FanoutTimelineEndpointService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); const sinceId = ps.sinceId ?? (ps.sinceDate ? this.idService.gen(ps.sinceDate!) : null); const isSelf = me && (me.id === ps.userId); @@ -126,7 +126,7 @@ export default class extends Endpoint { // eslint- withRepliesToSelf: ps.withRepliesToSelf, }, me); - return await this.noteEntityService.packMany(timeline, me, token); + return await this.noteEntityService.packMany(timeline, me); } const redisTimelines: FanoutTimelineName[] = [ps.withFiles ? `userTimelineWithFiles:${ps.userId}` : `userTimeline:${ps.userId}`]; @@ -140,7 +140,6 @@ export default class extends Endpoint { // eslint- limit: ps.limit, allowPartial: ps.allowPartial, me, - token, redisTimelines, useDbFallback: true, ignoreAuthorFromMute: true, diff --git a/packages/backend/src/server/api/endpoints/users/pages.ts b/packages/backend/src/server/api/endpoints/users/pages.ts index 97de0913f8..0b74a03a08 100644 --- a/packages/backend/src/server/api/endpoints/users/pages.ts +++ b/packages/backend/src/server/api/endpoints/users/pages.ts @@ -52,7 +52,7 @@ export default class extends Endpoint { // eslint- private pageEntityService: PageEntityService, private queryService: QueryService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const query = this.queryService.makePaginationQuery(this.pagesRepository.createQueryBuilder('page'), ps.sinceId, ps.untilId) .andWhere('page.userId = :userId', { userId: ps.userId }) .andWhere('page.visibility = \'public\''); @@ -61,7 +61,7 @@ export default class extends Endpoint { // eslint- .limit(ps.limit) .getMany(); - return await this.pageEntityService.packMany(pages, me, token); + return await this.pageEntityService.packMany(pages, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts index 53d2fecf8f..8409631c8e 100644 --- a/packages/backend/src/server/api/endpoints/users/reactions.ts +++ b/packages/backend/src/server/api/endpoints/users/reactions.ts @@ -80,9 +80,9 @@ export default class extends Endpoint { // eslint- private queryService: QueryService, private roleService: RoleService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const userIdsWhoBlockingMe = me ? await this.cacheService.userBlockedCache.fetch(me.id) : new Set(); - const iAmModerator = me ? await this.roleService.isModerator(me, token) : false; // Moderators can see reactions of all users + const iAmModerator = me ? await this.roleService.isModerator(me) : false; // Moderators can see reactions of all users if (!iAmModerator) { const user = await this.cacheService.findUserById(ps.userId); if (this.userEntityService.isRemoteUser(user)) { @@ -122,7 +122,7 @@ export default class extends Endpoint { // eslint- const reactions = await query.limit(ps.limit).getMany(); - return await this.noteReactionEntityService.packMany(reactions, me, token, { withNote: true }); + return await this.noteReactionEntityService.packMany(reactions, me, { withNote: true }); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts index 47b5855e69..f1a0fc5ddb 100644 --- a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts +++ b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts @@ -51,14 +51,14 @@ export default class extends Endpoint { // eslint- constructor( private userSearchService: UserSearchService, ) { - super(meta, paramDef, (ps, me, token) => { + super(meta, paramDef, (ps, me) => { return this.userSearchService.searchByUsernameAndHost({ username: ps.username, host: ps.host, }, { limit: ps.limit, detail: ps.detail, - }, me, token); + }, me); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/search.ts b/packages/backend/src/server/api/endpoints/users/search.ts index 5c95911b82..138cef2ec5 100644 --- a/packages/backend/src/server/api/endpoints/users/search.ts +++ b/packages/backend/src/server/api/endpoints/users/search.ts @@ -51,14 +51,14 @@ export default class extends Endpoint { // eslint- private userEntityService: UserEntityService, private userSearchService: UserSearchService, ) { - super(meta, paramDef, async (ps, me, token) => { + super(meta, paramDef, async (ps, me) => { const users = await this.userSearchService.search(ps.query.trim(), me?.id ?? null, { offset: ps.offset, limit: ps.limit, origin: ps.origin, }); - return await this.userEntityService.packMany(users, me, { schema: ps.detail ? 'UserDetailed' : 'UserLite', token }); + return await this.userEntityService.packMany(users, me, { schema: ps.detail ? 'UserDetailed' : 'UserLite' }); }); } } diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts index 740dd0f5b1..30b4719e09 100644 --- a/packages/backend/src/server/api/endpoints/users/show.ts +++ b/packages/backend/src/server/api/endpoints/users/show.ts @@ -104,10 +104,10 @@ export default class extends Endpoint { // eslint- private perUserPvChart: PerUserPvChart, private apiLoggerService: ApiLoggerService, ) { - super(meta, paramDef, async (ps, me, token, _2, _3, ip) => { + super(meta, paramDef, async (ps, me, _1, _2, _3, ip) => { let user; - const isModerator = await this.roleService.isModerator(me, token); + const isModerator = await this.roleService.isModerator(me); ps.username = ps.username?.trim(); if (ps.userIds) { diff --git a/packages/backend/src/server/api/stream/channel.ts b/packages/backend/src/server/api/stream/channel.ts index 90fb3d3237..71845125ad 100644 --- a/packages/backend/src/server/api/stream/channel.ts +++ b/packages/backend/src/server/api/stream/channel.ts @@ -35,10 +35,6 @@ export default abstract class Channel { return this.connection.user; } - protected get token() { - return this.connection.token; - } - protected get userProfile() { return this.connection.userProfile; } diff --git a/packages/backend/src/server/api/stream/channels/antenna.ts b/packages/backend/src/server/api/stream/channels/antenna.ts index e2dd937dc4..c2f5db9476 100644 --- a/packages/backend/src/server/api/stream/channels/antenna.ts +++ b/packages/backend/src/server/api/stream/channels/antenna.ts @@ -39,7 +39,7 @@ class AntennaChannel extends Channel { @bindThis private async onEvent(data: GlobalEvents['antenna']['payload']) { if (data.type === 'note') { - const note = await this.noteEntityService.pack(data.body.id, this.user, this.token, { detail: true }); + const note = await this.noteEntityService.pack(data.body.id, this.user, { detail: true }); const { accessible, silence } = await this.checkNoteVisibility(note, { includeReplies: true }); if (!accessible || silence) return; diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 764b145370..654d477628 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -842,7 +842,7 @@ export class ClientServerService { if (['specified', 'followers'].includes(note.visibility)) return; if (note.userHost != null) return; - const _note = await this.noteEntityService.pack(note, null, null, { detail: true }); + const _note = await this.noteEntityService.pack(note, null, { detail: true }); reply.header('Cache-Control', 'public, max-age=3600'); return await reply.view('base-embed', {