diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-05-29 16:56:24 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-05-30 12:35:31 -0400 |
| commit | 50a64f97df5c526a2f09e8e84e02347082b4954f (patch) | |
| tree | 3863799604cc645c04228eb472cbf9bd6e014a54 /packages/backend/src/server/api/endpoints/notes | |
| parent | merge: Log config file paths at startup (!1066) (diff) | |
| download | sharkey-50a64f97df5c526a2f09e8e84e02347082b4954f.tar.gz sharkey-50a64f97df5c526a2f09e8e84e02347082b4954f.tar.bz2 sharkey-50a64f97df5c526a2f09e8e84e02347082b4954f.zip | |
allow unauthenticated (logged-out) users to translate notes
Diffstat (limited to 'packages/backend/src/server/api/endpoints/notes')
| -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 a97542c063..d0d63518f7 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); } |