From 5d5f6c69d7c892367c4bd7e3183c8d8fac28df94 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 4 Apr 2025 20:40:23 +0800 Subject: [PATCH] core&ui: fix #973 --- packages/hydrooj/src/handler/domain.ts | 3 +- packages/login-with-github/index.ts | 2 +- packages/telegram/index.ts | 7 +- ...ecurity.page.ts => home_security.page.tsx} | 94 ++++++++++--------- 4 files changed, 60 insertions(+), 46 deletions(-) rename packages/ui-default/pages/{home_security.page.ts => home_security.page.tsx} (67%) diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 0e37b2405..a45e01d87 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -4,7 +4,7 @@ import moment from 'moment-timezone'; import type { Context } from '../context'; import { CannotDeleteSystemDomainError, DomainJoinAlreadyMemberError, DomainJoinForbiddenError, ForbiddenError, - InvalidJoinInvitationCodeError, NotFoundError, OnlyOwnerCanDeleteDomainError, PermissionError, RoleAlreadyExistError, ValidationError, + InvalidJoinInvitationCodeError, OnlyOwnerCanDeleteDomainError, PermissionError, RoleAlreadyExistError, ValidationError, } from '../error'; import type { DomainDoc } from '../interface'; import avatar from '../lib/avatar'; @@ -337,7 +337,6 @@ class DomainJoinHandler extends Handler { domain.get(target), domain.collUser.findOne({ domainId: target, uid: this.user._id }), ]); - if (!dudoc) throw new NotFoundError(target); const assignedRole = this.user.hasPriv(PRIV.PRIV_MANAGE_ALL_DOMAIN) ? 'root' : dudoc?.role || 'default'; diff --git a/packages/login-with-github/index.ts b/packages/login-with-github/index.ts index d445566dd..e3dd05019 100644 --- a/packages/login-with-github/index.ts +++ b/packages/login-with-github/index.ts @@ -5,7 +5,7 @@ import { // from https://github.com/logos // eslint-disable-next-line max-len -const icon = ''; +const icon = ''; export default class LoginWithGithubService extends Service { static inject = ['oauth']; diff --git a/packages/telegram/index.ts b/packages/telegram/index.ts index bda077624..071585b7c 100644 --- a/packages/telegram/index.ts +++ b/packages/telegram/index.ts @@ -24,7 +24,12 @@ export default class TelegramService extends Service { icon, canRegister: config.canRegister, callback: async function callback({ payload }) { - const parsed = JSON.parse(payload); + let parsed; + try { + parsed = JSON.parse(payload); + } catch (e) { + throw new ForbiddenError('Invalid payload'); + } const hash = parsed.hash; delete parsed.hash; const dataCheckString = Object.keys(parsed).sort().map((key) => (`${key}=${parsed[key]}`)).join('\n'); diff --git a/packages/ui-default/pages/home_security.page.ts b/packages/ui-default/pages/home_security.page.tsx similarity index 67% rename from packages/ui-default/pages/home_security.page.ts rename to packages/ui-default/pages/home_security.page.tsx index 1d5ffbc61..0392f5cc6 100644 --- a/packages/ui-default/pages/home_security.page.ts +++ b/packages/ui-default/pages/home_security.page.tsx @@ -9,34 +9,31 @@ import { delay, i18n, request, secureRandomString, tpl, } from 'vj/utils'; -const t = (s) => escape(i18n(s)); - async function changeMail() { const changeMailDialog = new ActionDialog({ - $body: tpl` -
-

${i18n('Please enter your current password and new email address:')}

-