限制用户详情单页提交记录数量

This commit is contained in:
undefined committed 2020-08-01 11:49:42 +08:00
1 parent 9d5b5f1eed
commit 0194ab4eb0
7 files changed
+48 -35

No files matched your search

+1 -1
View File
@@ -37,7 +37,7 @@ class ContestListHandler extends ContestHandler {
} else {
if (!contest.RULES[rule]) throw new ValidationError('rule');
tdocs = contest.getMulti(domainId, { rule }).sort({ beginAt: -1 });
qs = 'rule={0}'.format(rule);
qs = `rule=${rule}`;
}
// eslint-disable-next-line prefer-const
[tdocs, tpcount] = await paginate(tdocs, page, await system.get('CONTEST_PER_PAGE'));
+4 -2
View File
@@ -6,7 +6,9 @@ import {
SolutionNotFoundError, ProblemNotFoundError, ValidationError,
PermissionError,
} from '../error';
import { Pdoc, User, Rdoc } from '../interface';
import {
Pdoc, User, Rdoc, PathComponent,
} from '../interface';
import paginate from '../lib/paginate';
import {
checkPid, isTitle, isContent, isPid,
@@ -62,7 +64,7 @@ class ProblemMainHandler extends ProblemHandler {
this.response.template = 'problem_main.html';
const query: any = {};
let psdict = {};
const path: any = [
const path: PathComponent[] = [
['Hydro', 'homepage'],
['problem_main', null],
];
+16 -8
View File
@@ -1,5 +1,10 @@
import superagent from 'superagent';
import moment from 'moment-timezone';
import {
UserAlreadyExistError, InvalidTokenError, VerifyPasswordError,
UserNotFoundError, SystemError, BlacklistedError,
UserFacingError,
} from '../error';
import {
Route, Handler, Types, param,
} from '../service/server';
@@ -13,11 +18,7 @@ import { PERM, PRIV } from '../model/builtin';
import { isEmail, isPassword, isUname } from '../lib/validator';
import { sendMail } from '../lib/mail';
import * as misc from '../lib/misc';
import {
UserAlreadyExistError, InvalidTokenError, VerifyPasswordError,
UserNotFoundError, SystemError, BlacklistedError,
UserFacingError,
} from '../error';
import paginate from '../lib/paginate';
class UserLoginHandler extends Handler {
async get() {
@@ -158,8 +159,15 @@ class UserDetailHandler extends Handler {
const isSelfProfile = this.user._id === uid;
const udoc = await user.getById(domainId, uid);
if (!udoc) throw new UserNotFoundError(uid);
const sdoc = await token.getMostRecentSessionByUid(uid);
const rdocs = await record.getByUid(domainId, uid);
const [sdoc, rdocs, [pdocs, pcount]] = await Promise.all([
token.getMostRecentSessionByUid(uid),
record.getByUid(domainId, uid, 30),
paginate(
problem.getMulti(domainId, { owner: this.user._id }),
1,
100,
),
]);
const pdict = await problem.getList(
domainId, rdocs.map((rdoc) => rdoc.pid),
this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN), false,
@@ -176,7 +184,7 @@ class UserDetailHandler extends Handler {
];
this.response.template = 'user_detail.html';
this.response.body = {
isSelfProfile, udoc, sdoc, rdocs, pdict, path,
isSelfProfile, udoc, sdoc, rdocs, pdocs, pcount, pdict, path,
};
}
}