allow join by unrank user without code

This commit is contained in:
panda committed 2022-12-19 06:16:09 +00:00
1 parent 9470dd9cfa
commit cd8efa2025
3 files changed
+16 -18

No files matched your search

+8 -3
View File
@@ -224,8 +224,10 @@ export class ContestDetailHandler extends Handler {
@param('code', Types.String, true)
async postAttend(domainId: string, tid: ObjectID, code = '') {
if (contest.isDone(this.tdoc)) throw new ContestNotLiveError(tid);
if (this.tdoc._code && code !== this.tdoc._code) throw new InvalidTokenError('Contest Invitation', code);
if (this.tdoc._code && code !== this.tdoc._code && !this.tdoc.uninvite) throw new InvalidTokenError('Contest Invitation', code);
await contest.attend(domainId, tid, this.user._id);
if (this.tdoc.unrankUser.includes(this.user._id)
|| (this.tdoc._code && code !== this.tdoc._code && this.tdoc.uninvite)) contest.setStatus(domainId, tid, this.user._id, { unrank: true });
this.back();
}
}
@@ -412,11 +414,14 @@ export class ContestEditHandler extends Handler {
@param('assign', Types.CommaSeperatedArray, true)
@param('lock', Types.UnsignedInt, true)
@param('contestDuration', Types.Float, true)
@param('maintainer', Types.NumericArray, true)
@param('uninvite', Types.Boolean, true)
@param('allowViewCode', Types.Boolean, true)
async postUpdate(
domainId: string, tid: ObjectID, beginAtDate: string, beginAtTime: string, duration: number,
title: string, content: string, rule: string, _pids: string, rated = false,
_code = '', autoHide = false, assign: string[] = null, lock: number = null,
contestDuration: number = null,
contestDuration: number = null, maintainer: number[] = null, uninvite = false, allowViewCode = true,
) {
if (autoHide) this.checkPerm(PERM.PERM_EDIT_PROBLEM);
const pids = _pids.replace(/,/g, ',').split(',').map((i) => +i).filter((i) => i);
@@ -457,7 +462,7 @@ export class ContestEditHandler extends Handler {
});
}
await contest.edit(domainId, tid, {
assign, _code, autoHide, lockAt,
assign, _code, autoHide, lockAt, maintainer, uninvite, allowViewCode,
});
this.response.body = { tid };
this.response.redirect = this.url('contest_detail', { tid });