mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: ignore empty ids
This commit is contained in:
1 parent
f3e25eccbe
commit
bcd6ad5b3f
4 files changed
+9
-5
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hydrooj",
|
"name": "hydrooj",
|
||||||
"version": "2.26.21",
|
"version": "2.26.22",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "dist/loader.js",
|
"main": "dist/loader.js",
|
||||||
"typings": "dist/loader.d.ts",
|
"typings": "dist/loader.d.ts",
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ class ContestEditHandler extends Handler {
|
|||||||
domainId: string, beginAtDate: string, beginAtTime: string, duration: number,
|
domainId: string, beginAtDate: string, beginAtTime: string, duration: number,
|
||||||
title: string, content: string, rule: string, _pids: string, rated = false,
|
title: string, content: string, rule: string, _pids: string, rated = false,
|
||||||
) {
|
) {
|
||||||
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i);
|
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i).filter((i) => i);
|
||||||
await problem.getList(domainId, pids, this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN), true);
|
await problem.getList(domainId, pids, this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN), true);
|
||||||
const beginAtMoment = moment.tz(`${beginAtDate} ${beginAtTime}`, this.user.timeZone);
|
const beginAtMoment = moment.tz(`${beginAtDate} ${beginAtTime}`, this.user.timeZone);
|
||||||
if (!beginAtMoment.isValid()) {
|
if (!beginAtMoment.isValid()) {
|
||||||
@@ -425,7 +425,7 @@ class ContestCreateHandler extends Handler {
|
|||||||
domainId: string, beginAtDate: string, beginAtTime: string, duration: number,
|
domainId: string, beginAtDate: string, beginAtTime: string, duration: number,
|
||||||
title: string, content: string, rule: string, _pids: string, rated = false,
|
title: string, content: string, rule: string, _pids: string, rated = false,
|
||||||
) {
|
) {
|
||||||
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i);
|
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i).filter((i) => i);
|
||||||
const beginAt = moment.tz(`${beginAtDate} ${beginAtTime}`, this.user.timeZone);
|
const beginAt = moment.tz(`${beginAtDate} ${beginAtTime}`, this.user.timeZone);
|
||||||
if (!beginAt.isValid()) throw new ValidationError('beginAtDate', 'beginAtTime');
|
if (!beginAt.isValid()) throw new ValidationError('beginAtDate', 'beginAtTime');
|
||||||
const endAt = beginAt.clone().add(duration, 'hours').toDate();
|
const endAt = beginAt.clone().add(duration, 'hours').toDate();
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ class HomeworkCreateHandler extends Handler {
|
|||||||
penaltySinceDate: string, penaltySinceTime: string, extensionDays: number,
|
penaltySinceDate: string, penaltySinceTime: string, extensionDays: number,
|
||||||
penaltyRules: PenaltyRules, title: string, content: string, _pids: string, rated = false,
|
penaltyRules: PenaltyRules, title: string, content: string, _pids: string, rated = false,
|
||||||
) {
|
) {
|
||||||
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i);
|
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i).filter((i) => i);
|
||||||
const beginAt = moment.tz(`${beginAtDate} ${beginAtTime}`, this.user.timeZone);
|
const beginAt = moment.tz(`${beginAtDate} ${beginAtTime}`, this.user.timeZone);
|
||||||
if (!beginAt.isValid()) throw new ValidationError('beginAtDate', 'beginAtTime');
|
if (!beginAt.isValid()) throw new ValidationError('beginAtDate', 'beginAtTime');
|
||||||
const penaltySince = moment.tz(`${penaltySinceDate} ${penaltySinceTime}`, this.user.timeZone);
|
const penaltySince = moment.tz(`${penaltySinceDate} ${penaltySinceTime}`, this.user.timeZone);
|
||||||
@@ -323,7 +323,7 @@ class HomeworkEditHandler extends Handler {
|
|||||||
penaltySinceDate: string, penaltySinceTime: string, extensionDays: number,
|
penaltySinceDate: string, penaltySinceTime: string, extensionDays: number,
|
||||||
penaltyRules: string, title: string, content: string, _pids: string, rated = false,
|
penaltyRules: string, title: string, content: string, _pids: string, rated = false,
|
||||||
) {
|
) {
|
||||||
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i);
|
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i).filter((i) => i);
|
||||||
const tdoc = await contest.get(domainId, tid, document.TYPE_HOMEWORK);
|
const tdoc = await contest.get(domainId, tid, document.TYPE_HOMEWORK);
|
||||||
if (!this.user.own(tdoc)) this.checkPerm(PERM.PERM_EDIT_HOMEWORK);
|
if (!this.user.own(tdoc)) this.checkPerm(PERM.PERM_EDIT_HOMEWORK);
|
||||||
else this.checkPerm(PERM.PERM_EDIT_HOMEWORK_SELF);
|
else this.checkPerm(PERM.PERM_EDIT_HOMEWORK_SELF);
|
||||||
|
|||||||
@@ -629,6 +629,10 @@ export class ProblemPrefixListHandler extends Handler {
|
|||||||
@param('prefix', Types.Name)
|
@param('prefix', Types.Name)
|
||||||
async get(domainId: string, prefix: string) {
|
async get(domainId: string, prefix: string) {
|
||||||
this.response.body = await problem.getPrefixList(domainId, prefix);
|
this.response.body = await problem.getPrefixList(domainId, prefix);
|
||||||
|
if (!Number.isNaN(+prefix)) {
|
||||||
|
const pdoc = await problem.get(domainId, +prefix, undefined, ['domainId', 'docId', 'pid', 'title']);
|
||||||
|
if (pdoc) this.response.body.unshift(pdoc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user