From c1f3db02c1b9dcd1cf4a0b92e0ab9a27d6d50ed0 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 20 Oct 2024 11:17:51 +0900 Subject: [PATCH] wip --- locales/index.d.ts | 4 ++++ locales/ja-JP.yml | 1 + .../backend/src/server/api/GetterService.ts | 11 +++++++++++ .../src/server/api/endpoints/notes/show.ts | 2 +- .../frontend/src/components/MkFollowButton.vue | 4 ++-- packages/frontend/src/components/MkNote.vue | 8 ++++---- .../frontend/src/components/MkNoteDetailed.vue | 10 +++++----- packages/frontend/src/components/MkPoll.vue | 6 +++--- packages/frontend/src/os.ts | 18 ++++++++++-------- packages/frontend/src/pages/not-found.vue | 2 +- packages/frontend/src/pages/note.vue | 6 ++++++ packages/frontend/src/scripts/please-login.ts | 14 +++++++++----- 12 files changed, 57 insertions(+), 29 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index 6d147d6f34..a9a08d778a 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5190,6 +5190,10 @@ export interface Locale extends ILocale { * 名前に禁止されている文字列が含まれています。この名前を使用したい場合は、サーバー管理者にお問い合わせください。 */ "yourNameContainsProhibitedWordsDescription": string; + /** + * このコンテンツの閲覧にはログインが必要と作者によって設定されています + */ + "thisContentsAreMarkedAsSigninRequiredByAuthor": string; "_accountSettings": { /** * コンテンツの閲覧にログインを必須にする diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 2a6768b96d..5e04e71861 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1293,6 +1293,7 @@ prohibitedWordsForNameOfUser: "禁止ワード(ユーザーの名前)" prohibitedWordsForNameOfUserDescription: "このリストに含まれる文字列がユーザーの名前に含まれる場合、ユーザーの名前の変更を拒否します。モデレーター権限を持つユーザーはこの制限の影響を受けません。" yourNameContainsProhibitedWords: "変更しようとした名前に禁止された文字列が含まれています" yourNameContainsProhibitedWordsDescription: "名前に禁止されている文字列が含まれています。この名前を使用したい場合は、サーバー管理者にお問い合わせください。" +thisContentsAreMarkedAsSigninRequiredByAuthor: "このコンテンツの閲覧にはログインが必要と作者によって設定されています" _accountSettings: signinRequiredForShowContents: "コンテンツの閲覧にログインを必須にする" diff --git a/packages/backend/src/server/api/GetterService.ts b/packages/backend/src/server/api/GetterService.ts index bff3ab96f3..444e6db744 100644 --- a/packages/backend/src/server/api/GetterService.ts +++ b/packages/backend/src/server/api/GetterService.ts @@ -39,6 +39,17 @@ export class GetterService { return note; } + @bindThis + public async getNoteWithUser(noteId: MiNote['id']) { + const note = await this.notesRepository.findOne({ where: { id: noteId }, relations: ['user'] }); + + if (note == null) { + throw new IdentifiableError('9725d0ce-ba28-4dde-95a7-2cbb2c15de24', 'No such note.'); + } + + return note; + } + /** * Get user for API processing */ diff --git a/packages/backend/src/server/api/endpoints/notes/show.ts b/packages/backend/src/server/api/endpoints/notes/show.ts index d8b6a6ff5f..e841a3b102 100644 --- a/packages/backend/src/server/api/endpoints/notes/show.ts +++ b/packages/backend/src/server/api/endpoints/notes/show.ts @@ -50,7 +50,7 @@ export default class extends Endpoint { // eslint- private getterService: GetterService, ) { super(meta, paramDef, async (ps, me) => { - const note = await this.getterService.getNote(ps.noteId).catch(err => { + const note = await this.getterService.getNoteWithUser(ps.noteId).catch(err => { if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); throw err; }); diff --git a/packages/frontend/src/components/MkFollowButton.vue b/packages/frontend/src/components/MkFollowButton.vue index ccea7cd453..cc07175907 100644 --- a/packages/frontend/src/components/MkFollowButton.vue +++ b/packages/frontend/src/components/MkFollowButton.vue @@ -37,13 +37,13 @@ SPDX-License-Identifier: AGPL-3.0-only