测试:系统设置

This commit is contained in:
undefined committed 2020-05-19 19:13:15 +08:00
1 parent 747cb1b9b5
commit 0304cd808f
12 files changed
+147 -88

No files matched your search

+7 -10
View File
@@ -139,18 +139,15 @@ class HomeSettingsHandler extends Handler {
async get({ category }) {
this.response.template = 'home_settings.html';
this.response.body = {
category,
page_name: `home_${category}`,
current: this.user,
};
if (category === 'preference') {
this.response.body = {
category,
page_name: `home_${category}`,
settings: setting.PREFERENCE_SETTINGS,
};
this.response.body.settings = setting.PREFERENCE_SETTINGS;
} else if (category === 'account') {
this.response.body = {
category,
page_name: `home_${category}`,
settings: setting.ACCOUNT_SETTINGS,
};
this.response.body.settings = setting.ACCOUNT_SETTINGS;
} else throw new NotFoundError();
}
+25
View File
@@ -1,4 +1,6 @@
const user = require('../model/user');
const system = require('../model/system');
const setting = require('../model/setting');
const { Route, Handler } = require('../service/server');
const { PERM_MANAGE } = require('../permission');
const hpm = require('../lib/hpm');
@@ -136,6 +138,27 @@ class ManageModuleHandler extends ManageHandler {
}
}
class ManageSettingHandler extends ManageHandler {
async get() {
this.response.template = 'manage_settings.html';
const current = {};
const settings = setting.SYSTEM_SETTINGS;
for (const s of settings) {
current[s.key] = await system.get(s.key);
}
this.response.body = {
current, settings,
};
}
async post(args) {
for (const key in args) {
await system.set(key, args[key]);
}
this.back();
}
}
async function apply() {
Route('/manage', module.exports.ManageMainHandler);
Route('/manage/dashboard', module.exports.ManageDashboardHandler);
@@ -144,6 +167,7 @@ async function apply() {
Route('/manage/permission', module.exports.ManagePermissionHandler);
Route('/manage/role', module.exports.ManageRoleHandler);
Route('/manage/module', module.exports.ManageModuleHandler);
Route('/manage/setting', module.exports.ManageSettingHandler);
}
global.Hydro.handler.manage = module.exports = {
@@ -154,5 +178,6 @@ global.Hydro.handler.manage = module.exports = {
ManagePermissionHandler,
ManageRoleHandler,
ManageModuleHandler,
ManageSettingHandler,
apply,
};
+2 -2
View File
@@ -39,7 +39,7 @@ class UserLogoutHandler extends Handler {
}
async post() {
this.session = { uid: 1 };
this.session.uid = 1;
}
}
@@ -61,7 +61,7 @@ class UserRegisterHandler extends Handler {
{ mail },
);
if (await system.get('smtp.user')) {
const m = await this.renderHTML('user_register_mail', { url: `/register/${t}` });
const m = await this.renderHTML('user_register_mail', { url: `/register/${t[0]}` });
await sendMail(mail, 'Sign Up', 'user_register_mail', m);
this.response.template = 'user_register_mail_sent.html';
} else {
+7 -3
View File
@@ -21,12 +21,16 @@ function ensureDir(dir) {
const active = [];
const fail = [];
try {
// Let webpack pack builtin module together.
// eslint-disable-next-line import/no-unresolved
const f = require('../.build/builtin.json');
const m = { ...yaml.safeLoad(zlib.gunzipSync(f.data)), id: 'builtin' };
active.push(m);
const f = require('../.build/module.json');
for (const filename in f) {
const m = { ...yaml.safeLoad(zlib.gunzipSync(f[filename])), filename };
active.push(m);
console.log(filename);
}
} catch (e) {
// Builtin module is in the module directory
}
+13 -4
View File
@@ -24,10 +24,10 @@ const PREFERENCE_SETTINGS = [
const ACCOUNT_SETTINGS = [
Setting('setting_info', 'gravatar', null,
null, null, 'Gravatar Email',
null, 'text', 'Gravatar Email',
'We use <a href="https://en.gravatar.com/" target="_blank">Gravatar</a> to present your avatar icon.'),
Setting('setting_info', 'qq', null,
null, null, 'QQ'),
null, 'text', 'QQ'),
Setting('setting_info', 'gender', builtin.USER_GENDER_RANGE,
null, 'select', 'Gender'),
Setting('setting_info', 'bio', null,
@@ -43,6 +43,15 @@ const SETTINGS_BY_KEY = {};
for (const setting in SETTINGS) SETTINGS_BY_KEY[setting.key] = setting;
module.exports = {
PREFERENCE_SETTINGS, ACCOUNT_SETTINGS, SETTINGS, SETTINGS_BY_KEY,
const SYSTEM_SETTINGS = [
Setting('setting_smtp', 'smtp.user', null, null, 'text', 'SMTP Username'),
Setting('setting_smtp', 'smtp.pass', null, null, 'password', 'SMTP Password'),
Setting('setting_smtp', 'smtp.host', null, null, 'text', 'SMTP Server Host'),
Setting('setting_smtp', 'smtp.port', null, null, 'text', 'SMTP Server Port'),
Setting('setting_smtp', 'smtp.from', null, null, 'text', 'Mail From'),
Setting('setting_smtp', 'smtp.secure', null, null, 'checkbox', 'SSL'),
];
global.Hydro.model.setting = module.exports = {
Setting, PREFERENCE_SETTINGS, ACCOUNT_SETTINGS, SETTINGS, SETTINGS_BY_KEY, SYSTEM_SETTINGS,
};