mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01: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",
|
"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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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'),
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in new issue
Block a user