ui: domain_group management

This commit is contained in:
undefined committed 2022-01-12 15:44:58 +08:00
1 parent 8144e85c14
commit b1c63ddd6c
17 files changed
+270 -58

No files matched your search

+2 -1
View File
@@ -2,8 +2,8 @@ __id: en
__langname: English
Can be Extended For: Extension
contest_create: Contest Create
contest_detail_problem: Problem Detail
contest_detail_problem_submit: Submit Contest Problem
contest_detail_problem: Problem Detail
contest_detail: Contest Detail
contest_edit: Contest Edit
contest_main: Contest
@@ -17,6 +17,7 @@ display_name: Display Name
domain_dashboard: Dashboard
domain_discussion: Discussion Nodes
domain_edit: Edit Info
domain_group: Manage Groups
domain_join_applications: Join Applications
domain_main: Main
domain_permission: System Permission
+1
View File
@@ -259,6 +259,7 @@ domain_dashboard: 管理域
domain_discussion: 讨论节点
domain_edit: 编辑域资料
domain_file: 我的文件
domain_group: 管理小组
domain_join_applications: 加域申请
domain_join: 加入域
domain_main: 首页
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hydrooj",
"version": "3.3.8",
"version": "3.3.9",
"bin": "bin/hydrooj.js",
"main": "src/loader",
"module": "src/loader",
+9 -5
View File
@@ -27,9 +27,9 @@ registerValue('GroupInfo', [
]);
registerResolver('Query', 'domain(id: String)', 'Domain', async (args, ctx) => {
const ddoc = await domain.get(args.id);
const ddoc = args.id ? await domain.get(args.id) : ctx.domain;
if (!ddoc) return null;
const udoc = await user.getById(args.id, ctx.user._id);
const udoc = await user.getById(ddoc._id, ctx.user._id);
if (!udoc.hasPerm(PERM.PERM_VIEW) && !udoc.hasPriv(PRIV.PRIV_VIEW_ALL_DOMAIN)) return null;
ctx.udoc = udoc;
return ddoc;
@@ -37,7 +37,7 @@ registerResolver('Query', 'domain(id: String)', 'Domain', async (args, ctx) => {
registerResolver('Domain', 'manage', 'DomainManage', async (args, ctx) => {
if (!ctx.udoc.hasPerm(PERM.PERM_EDIT_DOMAIN)) throw new PermissionError(PERM.PERM_EDIT_DOMAIN);
return {};
return ctx.parent;
});
registerResolver('DomainManage', 'group', 'DomainGroup', (args, ctx) => ctx.parent);
@@ -267,8 +267,12 @@ class DomainJoinApplicationsHandler extends ManageHandler {
}
class DomainUserGroupHandler extends ManageHandler {
async get() {
this.response.body = 'domain_group.html';
async get({ domainId }) {
this.response.template = 'domain_group.html';
this.response.body = {
domain: this.domain,
groups: await user.listGroup(domainId),
};
}
@param('name', Types.Name)
+1 -1
View File
@@ -392,7 +392,7 @@ class UserModel {
}
static updateGroup(domainId: string, name: string, uids: number[]) {
return collGroup.updateOne({ domainId, name }, { $set: { uids } });
return collGroup.updateOne({ domainId, name }, { $set: { uids } }, { upsert: true });
}
}
+1 -1
View File
@@ -96,7 +96,7 @@ if (process.env.NODE_APP_INSTANCE === '0') {
{ upsert: true },
);
feedback();
setInterval(update, 60 * 1000);
setInterval(update, 1800 * 1000);
});
const taskColl = db.collection('task');
let taskCount = await taskColl.find().count();