From 59f1b4e429e62fcdc48ce0075273c035aa066c9e Mon Sep 17 00:00:00 2001 From: panda Date: Mon, 25 Apr 2022 17:17:04 +0800 Subject: [PATCH] ui: fix assign text & core: allow owner get homework detail (#345) --- packages/hydrooj/src/handler/contest.ts | 2 +- packages/hydrooj/src/handler/discussion.ts | 2 +- packages/hydrooj/src/handler/homework.ts | 2 +- packages/ui-default/locales/zh.yaml | 2 ++ packages/ui-default/templates/contest_edit.html | 1 + packages/ui-default/templates/homework_edit.html | 1 + packages/ui-default/templates/problem_edit.html | 2 +- 7 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index f9443c199..7f7e1409e 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -83,7 +83,7 @@ export class ContestDetailHandler extends Handler { @param('page', Types.PositiveInt, true) async prepare(domainId: string, tid: ObjectID) { const tdoc = await contest.get(domainId, tid); - if (tdoc.assign?.length) { + if (tdoc.assign?.length && !this.user.own(tdoc)) { const groups = await user.listGroup(domainId, this.user._id); if (!Set.intersection(tdoc.assign, groups.map((i) => i.name)).size) { throw new ForbiddenError('You are not assigned.'); diff --git a/packages/hydrooj/src/handler/discussion.ts b/packages/hydrooj/src/handler/discussion.ts index 133baff12..98b39e9f4 100644 --- a/packages/hydrooj/src/handler/discussion.ts +++ b/packages/hydrooj/src/handler/discussion.ts @@ -61,7 +61,7 @@ class DiscussionHandler extends Handler { // TODO(twd2): exclude problem/contest discussions? // TODO(iceboy): continuation based pagination. this.vnode = await discussion.getVnode(domainId, typeMapper[type], name, this.user._id); - if (this.vnode.assign?.length) { + if (this.vnode.assign?.length && !this.user.own(this.vnode)) { if (!Set.intersection(this.vnode.assign, this.user.group).size) { throw new PermissionError(PERM.PERM_VIEW_PROBLEM_HIDDEN); } diff --git a/packages/hydrooj/src/handler/homework.ts b/packages/hydrooj/src/handler/homework.ts index 0b98076f7..90f230559 100644 --- a/packages/hydrooj/src/handler/homework.ts +++ b/packages/hydrooj/src/handler/homework.ts @@ -45,7 +45,7 @@ class HomeworkDetailHandler extends Handler { async prepare(domainId: string, tid: ObjectID) { const tdoc = await contest.get(domainId, tid); if (tdoc.rule !== 'homework') throw new ContestNotFoundError(domainId, tid); - if (tdoc.assign?.length) { + if (tdoc.assign?.length && !this.user.own(tdoc)) { if (!Set.intersection(tdoc.assign, this.user.group).size) { throw new ForbiddenError('You are not assigned.'); } diff --git a/packages/ui-default/locales/zh.yaml b/packages/ui-default/locales/zh.yaml index 5d333d8c4..93066ae16 100644 --- a/packages/ui-default/locales/zh.yaml +++ b/packages/ui-default/locales/zh.yaml @@ -79,6 +79,7 @@ Any user is allowed to join this domain: 任意用户都可以加入此域 API: API Argument {0} is invalid.: 非法的参数 {0} 。 Arguments: 参数 +Assign: 分配给 At least 4 characters: 至少 4 个字符 Attend Contest: 参加比赛 Attend contests: 参加比赛 @@ -336,6 +337,7 @@ fs_upload: 上传文件 Gender Visibility: 性别可见性 Gender: 性别 Gravatar URL Prefix: Gravatar地址前缀 +Group / UID: 小组或 UID Group Name: 名称 Hard Deadline: 最终截止时间 Hash: 散列 diff --git a/packages/ui-default/templates/contest_edit.html b/packages/ui-default/templates/contest_edit.html index 270e3853b..9621a7153 100644 --- a/packages/ui-default/templates/contest_edit.html +++ b/packages/ui-default/templates/contest_edit.html @@ -70,6 +70,7 @@ columns:4, label:'Assign', name:'assign', + placeholder:_('Group / UID'), value:tdoc.assign|default(''), row:false }) }} diff --git a/packages/ui-default/templates/homework_edit.html b/packages/ui-default/templates/homework_edit.html index e69d21c8b..757c4d2bb 100644 --- a/packages/ui-default/templates/homework_edit.html +++ b/packages/ui-default/templates/homework_edit.html @@ -66,6 +66,7 @@ columns:4, label:'Assign', name:'assign', + placeholder:_('Group / UID'), value:tdoc.assign|default('') }) }} diff --git a/packages/ui-default/templates/problem_edit.html b/packages/ui-default/templates/problem_edit.html index 865e44da1..f1e2bd4fc 100644 --- a/packages/ui-default/templates/problem_edit.html +++ b/packages/ui-default/templates/problem_edit.html @@ -43,7 +43,7 @@ row:false, columns:3, label:'Assign', - help_text:'Assigned groups', + placeholder:_('Group / UID'), name:'assign', value:pdoc.assign|default([])|join(', ') }) }}