mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17:38:19 +08:00
core: allow setting priv_default
This commit is contained in:
1 parent
4a34a91848
commit
3aadb9511d
5 files changed
+8
-8
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "2.20.25",
|
||||
"version": "2.20.26",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "dist/loader.js",
|
||||
"typings": "dist/loader.d.ts",
|
||||
|
||||
@@ -168,7 +168,7 @@ class DomainModel {
|
||||
}
|
||||
|
||||
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 = {}) {
|
||||
@@ -176,7 +176,7 @@ class DomainModel {
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -38,6 +38,7 @@ export const DOMAIN_USER_SETTINGS_BY_KEY: SettingDict = {};
|
||||
export const DOMAIN_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 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.language', 'zh_CN', langRange, 'Default display language'),
|
||||
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', 'lang.texts', builtin.LANG_TEXTS, 'yaml', 'LANG_TEXTS'),
|
||||
Setting('setting_basic', 'pagination.problem', 100, 'number', 'Problems per page'),
|
||||
|
||||
@@ -195,7 +195,7 @@ class UserModel {
|
||||
@ArgMethod
|
||||
static async create(
|
||||
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();
|
||||
if (!uid) uid = await system.inc('user');
|
||||
|
||||
@@ -4,9 +4,7 @@ import mysql from 'mysql';
|
||||
import 'hydrooj';
|
||||
import { buildContent } from 'hydrooj/dist/lib/content';
|
||||
|
||||
const {
|
||||
user, problem, builtin: { PRIV },
|
||||
} = global.Hydro.model;
|
||||
const { user, problem, system } = global.Hydro.model;
|
||||
|
||||
export async function run({
|
||||
host = 'localhost', port = 27017, name = 'vijos4', username, password,
|
||||
@@ -45,7 +43,7 @@ export async function run({
|
||||
|
||||
const [udocs] = await query('SELECT * FROM `users`');
|
||||
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;
|
||||
await user.setById(uid, {
|
||||
nSubmit: udoc.submit,
|
||||
|
||||
Reference in new issue
Block a user