diff --git a/packages/platform/src/lang/en.json b/packages/platform/src/lang/en.json index 87b47651d6..ec50a8dd85 100644 --- a/packages/platform/src/lang/en.json +++ b/packages/platform/src/lang/en.json @@ -5,6 +5,7 @@ "InvalidId": "Invalid Id: {id}", "BadRequest": "Bad request", "Forbidden": "Forbidden", + "ExpiredLink": "This invite link is expired", "Unauthorized": "Unauthorized", "UnknownMethod": "Unknown method: {method}", "InternalServerError": "Internal server error" diff --git a/packages/platform/src/lang/ru.json b/packages/platform/src/lang/ru.json index 6e8a612432..e66fa0aaa9 100644 --- a/packages/platform/src/lang/ru.json +++ b/packages/platform/src/lang/ru.json @@ -5,8 +5,9 @@ "InvalidId": "Некорректный Id: {id}", "BadRequest": "Некорректный запрос", "Forbidden": "Запрещено", + "ExpiredLink": "Ссылка истекла", "Unauthorized": "Неавторизован", "UnknownMethod": "Неизвестный метод: {method}", - "InternalServerError": "Внутренняя ошибка сервеа" + "InternalServerError": "Внутренняя ошибка сервера" } } diff --git a/packages/platform/src/platform.ts b/packages/platform/src/platform.ts index cef8f52ac6..6123954054 100644 --- a/packages/platform/src/platform.ts +++ b/packages/platform/src/platform.ts @@ -141,6 +141,7 @@ export default plugin(platformId, { BadRequest: '' as StatusCode, Forbidden: '' as StatusCode, Unauthorized: '' as StatusCode, + ExpiredLink: '' as StatusCode, UnknownMethod: '' as StatusCode<{ method: string }>, InternalServerError: '' as StatusCode }, diff --git a/server/account/src/index.ts b/server/account/src/index.ts index e5e55133dc..09a1a36885 100644 --- a/server/account/src/index.ts +++ b/server/account/src/index.ts @@ -279,7 +279,7 @@ export async function checkInvite (invite: Invite | null, email: string): Promis throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) } if (invite.exp < Date.now()) { - throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) + throw new PlatformError(new Status(Severity.ERROR, platform.status.ExpiredLink, {})) } if (!new RegExp(invite.emailMask).test(email)) { throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) @@ -924,6 +924,11 @@ function wrap (f: (db: Db, productId: string, ...args: any[]) => Promise): .then((result) => ({ id: request.id, result })) .catch((err) => { console.error(err) + if (err.status.code === platform.status.ExpiredLink) { + return { + error: new Status(Severity.ERROR, platform.status.ExpiredLink, {}) + } + } return { error: err instanceof PlatformError