core: allow setting priv_default

This commit is contained in:
undefined committed 2021-03-21 18:22:15 +08:00
1 parent 4a34a91848
commit 3aadb9511d
5 files changed
+8 -8

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "hydrooj", "name": "hydrooj",
"version": "2.20.25", "version": "2.20.26",
"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",
+2 -2
View File
@@ -168,7 +168,7 @@ class DomainModel {
} }
static setMultiUserInDomain(domainId: string, query: any, params: any) { static setMultiUserInDomain(domainId: string, query: any, params: any) {
return collUser.updateMany({ domainId, ...query }, { $set: params }); return collUser.updateMany({ domainId, ...query }, { $set: params }, { upsert: true });
} }
static getMultiUserInDomain(domainId: string, query: any = {}) { static getMultiUserInDomain(domainId: string, query: any = {}) {
@@ -176,7 +176,7 @@ class DomainModel {
} }
static setUserInDomain(domainId: string, uid: number, params: any) { static setUserInDomain(domainId: string, uid: number, params: any) {
return collUser.updateOne({ domainId, uid }, { $set: params }); return collUser.updateOne({ domainId, uid }, { $set: params }, { upsert: true });
} }
@ArgMethod @ArgMethod
+2
View File
@@ -38,6 +38,7 @@ export const DOMAIN_USER_SETTINGS_BY_KEY: SettingDict = {};
export const DOMAIN_SETTINGS_BY_KEY: SettingDict = {}; export const DOMAIN_SETTINGS_BY_KEY: SettingDict = {};
export const SYSTEM_SETTINGS_BY_KEY: SettingDict = {}; export const SYSTEM_SETTINGS_BY_KEY: SettingDict = {};
// eslint-disable-next-line max-len
export type SettingType = 'text' | 'yaml' | 'number' | 'markdown' | 'password' | 'boolean' | 'textarea' | [string, string][] | Record<string, string>; export type SettingType = 'text' | 'yaml' | 'number' | 'markdown' | 'password' | 'boolean' | 'textarea' | [string, string][] | Record<string, string>;
export const Setting = ( export const Setting = (
@@ -160,6 +161,7 @@ SystemSetting(
Setting('setting_server', 'server.xff', null, 'text', 'IP Header', 'e.g. x-forwarded-for (lowercase)'), Setting('setting_server', 'server.xff', null, 'text', 'IP Header', 'e.g. x-forwarded-for (lowercase)'),
Setting('setting_server', 'server.language', 'zh_CN', langRange, 'Default display language'), Setting('setting_server', 'server.language', 'zh_CN', langRange, 'Default display language'),
Setting('setting_server', 'server.login', true, 'boolean', 'Allow builtin-login'), Setting('setting_server', 'server.login', true, 'boolean', 'Allow builtin-login'),
Setting('setting_basic', 'default.priv', builtin.PRIV.PRIV_DEFAULT, 'number', 'Default Privilege'),
Setting('setting_basic', 'problem.categories', builtin.CATEGORIES, 'yaml', 'Problem Categories'), Setting('setting_basic', 'problem.categories', builtin.CATEGORIES, 'yaml', 'Problem Categories'),
Setting('setting_basic', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'LANG_TEXTS'), Setting('setting_basic', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'LANG_TEXTS'),
Setting('setting_basic', 'pagination.problem', 100, 'number', 'Problems per page'), Setting('setting_basic', 'pagination.problem', 100, 'number', 'Problems per page'),
+1 -1
View File
@@ -195,7 +195,7 @@ class UserModel {
@ArgMethod @ArgMethod
static async create( static async create(
mail: string, uname: string, password: string, mail: string, uname: string, password: string,
uid: number = 0, regip: string = '127.0.0.1', priv: number = PRIV.PRIV_DEFAULT, uid: number = 0, regip: string = '127.0.0.1', priv: number = system.get('default.priv'),
) { ) {
const salt = String.random(); const salt = String.random();
if (!uid) uid = await system.inc('user'); if (!uid) uid = await system.inc('user');
+2 -4
View File
@@ -4,9 +4,7 @@ import mysql from 'mysql';
import 'hydrooj'; import 'hydrooj';
import { buildContent } from 'hydrooj/dist/lib/content'; import { buildContent } from 'hydrooj/dist/lib/content';
const { const { user, problem, system } = global.Hydro.model;
user, problem, builtin: { PRIV },
} = global.Hydro.model;
export async function run({ export async function run({
host = 'localhost', port = 27017, name = 'vijos4', username, password, host = 'localhost', port = 27017, name = 'vijos4', username, password,
@@ -45,7 +43,7 @@ export async function run({
const [udocs] = await query('SELECT * FROM `users`'); const [udocs] = await query('SELECT * FROM `users`');
for (const udoc of udocs) { for (const udoc of udocs) {
const uid = await user.create(udoc.email, udoc.nick, '', null, udoc.ip, udoc.defunct === 'Y' ? 0 : PRIV.PRIV_DEFAULT); const uid = await user.create(udoc.email, udoc.nick, '', null, udoc.ip, udoc.defunct === 'Y' ? 0 : system.get('default.priv'));
uidMap[udoc.uid] = uid; uidMap[udoc.uid] = uid;
await user.setById(uid, { await user.setById(uid, {
nSubmit: udoc.submit, nSubmit: udoc.submit,