更新权限节点

This commit is contained in:
undefined committed 2020-06-30 11:48:27 +08:00
1 parent e092efca20
commit b22082beba
16 files changed
+88 -87

No files matched your search

+2 -2
View File
@@ -4,7 +4,7 @@ const document = require('../model/document');
const setting = require('../model/setting');
const db = require('../service/db');
const paginate = require('../lib/paginate');
const { STATUS } = require('../model/builtin');
const { STATUS, PRIV } = require('../model/builtin');
const collDocument = db.collection('document');
const collStatus = db.collection('document.status');
@@ -78,7 +78,7 @@ async function run({
await user.setById(uid, {
uname,
unameLower: uname.toLowerCase(),
priv: 0,
priv: PRIV.PRIV_NONE,
}, $unset);
await user.setPassword(uid, String.random(32));
// TODO delete contest, homework, etc
+3 -22
View File
@@ -1,5 +1,6 @@
const { defaults } = require('lodash');
const db = require('../service/db');
const { PRIV_ALL } = require('../model/builtin').PRIV;
const system = require('../model/system');
const domain = require('../model/domain');
const pwhash = require('../lib/hash.hydro');
@@ -43,27 +44,7 @@ async function run({ username, password } = {}) {
}));
}
await Promise.all(tasks);
tasks = [
domain.add('system', 0, 'Hydro').catch(() => domain.edit('system', { owner: 0, name: 'Hydro' })),
collUser.updateOne({ _id: 0 }, {
$set: defaults({
_id: 0,
uname: 'Hydro',
unameLower: 'hydro',
mail: 'hydro@hydro',
mailLower: 'hydro@hydro',
}, udoc),
}, { upsert: true }),
collUser.updateOne({ _id: 1 }, {
$set: defaults({
_id: 1,
mail: 'guest@hydro',
mailLower: 'guest@hydro',
uname: 'Guest',
unameLower: 'guest',
}, udoc),
}, { upsert: true }),
];
tasks = [domain.add('system', 0, 'Hydro', true)];
if (username && password) {
const salt = String.random();
tasks.push(
@@ -77,7 +58,7 @@ async function run({ username, password } = {}) {
hash: pwhash(password, salt),
salt,
gravatar: 'root@hydro',
priv: 1,
priv: PRIV_ALL,
}, udoc),
}, { upsert: true }),
);
+2 -1
View File
@@ -1,11 +1,12 @@
const user = require('../model/user');
const { PRIV_ALL } = require('../model/builtin').PRIV;
async function run({
uid,
}) {
uid = parseInt(uid, 10);
if (Number.isNaN(uid)) throw new Error('uid');
await user.setSuperAdmin(uid);
await user.setPriv(uid, PRIV_ALL);
return uid;
}