diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-06-01 20:52:19 +0000 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-06-01 20:52:19 +0000 |
| commit | 39fcdcae257d158159d020ff72ef2c5e720f5ffa (patch) | |
| tree | b7cbef18463ddcc4a6b40ff03cfeed5ff4d992d3 /packages/backend/src/server/api/endpoints/notes/translate.ts | |
| parent | merge: Overhaul trending polls (!1022) (diff) | |
| parent | catch errors from fetchInstance() to resolve test errors (diff) | |
| download | sharkey-39fcdcae257d158159d020ff72ef2c5e720f5ffa.tar.gz sharkey-39fcdcae257d158159d020ff72ef2c5e720f5ffa.tar.bz2 sharkey-39fcdcae257d158159d020ff72ef2c5e720f5ffa.zip | |
merge: Allow unauthenticated (logged-out) users to translate notes (!1055)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1055
Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/notes/translate.ts')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/notes/translate.ts | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/packages/backend/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts index e059b5e603..e55168e296 100644 --- a/packages/backend/src/server/api/endpoints/notes/translate.ts +++ b/packages/backend/src/server/api/endpoints/notes/translate.ts @@ -20,11 +20,9 @@ import { ApiError } from '../../error.js'; export const meta = { tags: ['notes'], - // TODO allow unauthenticated if default template allows? - // Maybe a value 'optional' that allows unauthenticated OR a token w/ appropriate role. - // This will allow unauthenticated requests without leaking post data to restricted clients. - requireCredential: true, + requireCredential: 'optional', kind: 'read:account', + requiredRolePolicy: 'canUseTranslator', res: { type: 'object', @@ -88,17 +86,12 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- private readonly loggerService: ApiLoggerService, ) { super(meta, paramDef, async (ps, me) => { - const policies = await this.roleService.getUserPolicies(me.id); - if (!policies.canUseTranslator) { - throw new ApiError(meta.errors.unavailable); - } - 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.noteEntityService.isVisibleForMe(note, me.id))) { + if (!(await this.noteEntityService.isVisibleForMe(note, me?.id ?? null))) { throw new ApiError(meta.errors.cannotTranslateInvisibleNote); } |