mirror of https://github.com/tp4a/teleport
temp.
parent
7e1f6705e7
commit
367fafdd67
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -6,6 +6,9 @@ $app.on_init = function (cb_stack) {
|
|||
$app.dlg_result = $app.create_dlg_result();
|
||||
// cb_stack.add($app.dlg_result.init);
|
||||
|
||||
$app.info = $app.create_info_table();
|
||||
cb_stack.add($app.info.init);
|
||||
|
||||
$app.smtp = $app.create_config_smtp();
|
||||
cb_stack.add($app.smtp.init);
|
||||
|
||||
|
@ -18,6 +21,71 @@ $app.on_init = function (cb_stack) {
|
|||
cb_stack.exec();
|
||||
};
|
||||
|
||||
$app.create_info_table = function () {
|
||||
var _info = {};
|
||||
|
||||
_info.dom = {
|
||||
web_info: $('#web-info-kv'),
|
||||
core_info: $('#core-info-kv')
|
||||
};
|
||||
|
||||
_info.init = function () {
|
||||
var h = [];
|
||||
|
||||
h.push(_info._make_info('WEB服务版本', $app.options.web_cfg.version));
|
||||
|
||||
if ($app.options.web_cfg.db.type === DB_TYPE_SQLITE) {
|
||||
h.push(_info._make_info('数据库类型', 'SQLite'));
|
||||
h.push(_info._make_info('数据库文件', $app.options.web_cfg.db.sqlite_file));
|
||||
} else if ($app.options.web_cfg.db.type === DB_TYPE_MYSQL) {
|
||||
h.push(_info._make_info('数据库类型', 'MySQL'));
|
||||
h.push(_info._make_info('mysql-host', $app.options.web_cfg.db.mysql_host));
|
||||
h.push(_info._make_info('mysql-port', $app.options.web_cfg.db.mysql_port));
|
||||
h.push(_info._make_info('mysql-db', $app.options.web_cfg.db.mysql_db));
|
||||
h.push(_info._make_info('mysql-user', $app.options.web_cfg.db.mysql_user));
|
||||
} else {
|
||||
h.push(_info._make_info('数据库类型', '未知'));
|
||||
}
|
||||
|
||||
h.push(_info._make_info('与核心服务通讯地址', $app.options.web_cfg.core_server_rpc));
|
||||
|
||||
_info.dom.web_info.append(h.join(''));
|
||||
|
||||
h = [];
|
||||
if (!$app.options.core_cfg.detected) {
|
||||
h.push(_info._make_info('核心服务信息', '<span class="error">无法获取,未能连接到核心服务</span>'));
|
||||
} else {
|
||||
h.push(_info._make_info('核心服务版本', $app.options.core_cfg.version));
|
||||
h.push(_info._make_info('与WEB服务通讯地址', $app.options.core_cfg.web_server_rpc));
|
||||
h.push(_info._make_protocol_info('RDP 端口', $app.options.core_cfg.rdp));
|
||||
h.push(_info._make_protocol_info('SSH 端口', $app.options.core_cfg.ssh));
|
||||
// h.push(_info._make_protocol_info('TELNET 端口', $app.options.core_cfg.telnet));
|
||||
h.push(_info._make_info('录像文件路径', $app.options.core_cfg.replay_path));
|
||||
}
|
||||
|
||||
_info.dom.core_info.append(h.join(''));
|
||||
|
||||
};
|
||||
|
||||
_info._make_info = function (k, v) {
|
||||
if (_.isUndefined(v))
|
||||
v = '<span class="error">未能检测到</span>';
|
||||
return '<tr><td class="key">' + k + ':</td><td class="value">' + v + '</td></tr>';
|
||||
};
|
||||
_info._make_protocol_info = function (name, p) {
|
||||
if (_.isUndefined(p))
|
||||
return _info._make_info(name, '未能检测到');
|
||||
var val = p.port;
|
||||
if (!p.enable) {
|
||||
val = '<span class="disabled">' + val + '(未启用)</span>';
|
||||
}
|
||||
|
||||
return _info._make_info(name, val);
|
||||
};
|
||||
|
||||
return _info;
|
||||
};
|
||||
|
||||
$app.create_dlg_result = function () {
|
||||
var _dlg = {};
|
||||
|
||||
|
@ -27,7 +95,7 @@ $app.create_dlg_result = function () {
|
|||
msg: $('#dlg-result-msg')
|
||||
};
|
||||
|
||||
_dlg.show = function(title, msg) {
|
||||
_dlg.show = function (title, msg) {
|
||||
_dlg.dom.title.text(title);
|
||||
_dlg.dom.msg.html(msg);
|
||||
_dlg.dom.dlg.modal();
|
||||
|
@ -484,11 +552,11 @@ $app.create_config_storage = function () {
|
|||
var _keep_log = parseInt(_sto.dom.input_keep_log.val());
|
||||
var _keep_record = parseInt(_sto.dom.input_keep_record.val());
|
||||
|
||||
if($app.options.sys_cfg.storage.keep_log !== _keep_log || $app.options.sys_cfg.storage.keep_record !== _keep_record) {
|
||||
if ($app.options.sys_cfg.storage.keep_log !== _keep_log || $app.options.sys_cfg.storage.keep_record !== _keep_record) {
|
||||
$tp.notify_error('您已经修改了设置,请先保存设置,再进行清理!');
|
||||
return;
|
||||
}
|
||||
if($app.options.sys_cfg.storage.keep_log === 0 && $app.options.sys_cfg.storage.keep_record === 0) {
|
||||
if ($app.options.sys_cfg.storage.keep_log === 0 && $app.options.sys_cfg.storage.keep_record === 0) {
|
||||
$tp.notify_error('根据设置,没有需要清理的内容!');
|
||||
return;
|
||||
}
|
||||
|
@ -502,8 +570,8 @@ $app.create_config_storage = function () {
|
|||
$tp.notify_success('清理存储空间成功!');
|
||||
|
||||
var msg = [];
|
||||
for(var i = 0; i < ret.data.length; ++i) {
|
||||
msg.push('<p>'+ret.data[i]+'</p>');
|
||||
for (var i = 0; i < ret.data.length; ++i) {
|
||||
msg.push('<p>' + ret.data[i] + '</p>');
|
||||
}
|
||||
|
||||
$app.dlg_result.show('清理存储空间', msg.join(''));
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
td {
|
||||
border-top: 1px dotted #ddd;
|
||||
padding: 5px 10px;
|
||||
padding: 5px 5px;
|
||||
vertical-align: top;
|
||||
&.key {
|
||||
text-align: right;
|
||||
|
@ -27,10 +27,12 @@
|
|||
text-align: left;
|
||||
//padding-left:10px;
|
||||
//font-weight: bold;
|
||||
font-family: @font-family-mono;
|
||||
color: #767676;
|
||||
}
|
||||
.error {
|
||||
color: #cc3632;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,15 +17,25 @@
|
|||
<div class="page-content-inner">
|
||||
<div class="box box-nav-tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#tab-security" data-toggle="tab">安全</a></li>
|
||||
<li class="active"><a href="#tab-info" data-toggle="tab">基本信息</a></li>
|
||||
<li><a href="#tab-security" data-toggle="tab">安全</a></li>
|
||||
<li><a href="#tab-smtp" data-toggle="tab">邮件系统</a></li>
|
||||
<li><a href="#tab-storage" data-toggle="tab">存储</a></li>
|
||||
## <li><a href="#tab-backup" data-toggle="tab">备份</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<!-- panel for global information -->
|
||||
<div class="tab-pane active" id="tab-info">
|
||||
<h4>WEB服务配置</h4>
|
||||
<table id="web-info-kv" class="table table-info-list"></table>
|
||||
<hr/>
|
||||
<h4>核心服务配置</h4>
|
||||
<table id="core-info-kv" class="table table-info-list"></table>
|
||||
</div>
|
||||
|
||||
<!-- panel for security config -->
|
||||
<div class="tab-pane active" id="tab-security">
|
||||
<div class="tab-pane" id="tab-security">
|
||||
<table class="table table-config-list">
|
||||
<tr>
|
||||
<td colspan="2" class="title">密码策略</td>
|
||||
|
@ -115,19 +125,19 @@
|
|||
<div class="tab-pane" id="tab-smtp">
|
||||
<table class="table table-info-list">
|
||||
<tr>
|
||||
<td class="key">SMTP服务器</td>
|
||||
<td class="key">SMTP服务器:</td>
|
||||
<td class="value"><span id="smtp-server-info"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="key">SMTP 端口</td>
|
||||
<td class="key">SMTP 端口:</td>
|
||||
<td class="value"><span id="smtp-port-info"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="key">SSL模式</td>
|
||||
<td class="key">SSL模式:</td>
|
||||
<td class="value"><span id="smtp-ssl-info"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="key">发件人邮箱</td>
|
||||
<td class="key">发件人邮箱:</td>
|
||||
<td class="value"><span id="smtp-sender-info"></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -312,7 +312,7 @@ class AppConfig(BaseAppConfig):
|
|||
|
||||
def _on_get_save_info(self):
|
||||
return [
|
||||
{'common': ['ip', 'port', 'log-file', 'log-level', 'debug-mode', 'base-server-rpc']},
|
||||
{'common': ['ip', 'port', 'log-file', 'log-level', 'debug-mode', 'core-server-rpc']},
|
||||
{'database': ['type', 'sqlite-file', 'mysql-host', 'mysql-port', 'mysql-db', 'mysql-prefix', 'mysql-user', 'mysql-password']}
|
||||
]
|
||||
|
||||
|
@ -348,9 +348,9 @@ class AppConfig(BaseAppConfig):
|
|||
if _tmp_str is not None:
|
||||
self.set_kv('common::log-file', _tmp_str)
|
||||
|
||||
_tmp_str = _sec.get('base-server-rpc', None)
|
||||
_tmp_str = _sec.get('core-server-rpc', None)
|
||||
if _tmp_str is not None:
|
||||
self.set_kv('common::base-server-rpc', _tmp_str)
|
||||
self.set_kv('common::core-server-rpc', _tmp_str)
|
||||
|
||||
_sec = cfg_parser['database']
|
||||
|
||||
|
|
|
@ -122,13 +122,19 @@ class DoLoginHandler(TPBaseJsonHandler):
|
|||
|
||||
err_msg = ''
|
||||
if login_type in [TP_LOGIN_AUTH_USERNAME_PASSWORD, TP_LOGIN_AUTH_USERNAME_PASSWORD_CAPTCHA, TP_LOGIN_AUTH_USERNAME_PASSWORD_OATH]:
|
||||
# 如果系统配置了密码有效期,则检查用户的密码是否失效
|
||||
if sys_cfg.password.timeout != 0:
|
||||
pass
|
||||
|
||||
if not tp_password_verify(password, user_info['password']):
|
||||
err, is_locked = user.update_fail_count(self, user_info)
|
||||
if is_locked:
|
||||
err_msg = '用户被临时锁定!'
|
||||
syslog.sys_log(user_info, self.request.remote_ip, TPE_USER_AUTH, '登录失败,密码错误!{}'.format(err_msg))
|
||||
return self.write_json(TPE_USER_AUTH)
|
||||
elif login_type in [TP_LOGIN_AUTH_USERNAME_OATH, TP_LOGIN_AUTH_USERNAME_PASSWORD_OATH]:
|
||||
|
||||
if login_type in [TP_LOGIN_AUTH_USERNAME_OATH, TP_LOGIN_AUTH_USERNAME_PASSWORD_OATH]:
|
||||
# use oath
|
||||
if not tp_oath_verify_code(user_info['oath_secret'], oath):
|
||||
err, is_locked = user.update_fail_count(self, user_info)
|
||||
if is_locked:
|
||||
|
|
|
@ -6,11 +6,13 @@ import shutil
|
|||
|
||||
import app.model.system as system_model
|
||||
import tornado.gen
|
||||
from app.app_ver import TP_SERVER_VER
|
||||
from app.base import mail
|
||||
from app.base.configs import get_cfg
|
||||
from app.base.controller import TPBaseHandler, TPBaseJsonHandler
|
||||
from app.base.logger import *
|
||||
from app.const import *
|
||||
from app.base.db import get_db
|
||||
from app.model import syslog
|
||||
from app.model import record
|
||||
from app.base.core_server import core_service_async_post_http
|
||||
|
@ -46,11 +48,26 @@ class ConfigHandler(TPBaseHandler):
|
|||
else:
|
||||
total_size, _, free_size = shutil.disk_usage(get_cfg().core.replay_path)
|
||||
|
||||
_db = get_db()
|
||||
db = {'type': _db.db_type}
|
||||
if _db.db_type == _db.DB_TYPE_SQLITE:
|
||||
db['sqlite_file'] = _db.sqlite_file
|
||||
elif _db.db_type == _db.DB_TYPE_MYSQL:
|
||||
db['mysql_host'] = _db.mysql_host
|
||||
db['mysql_port'] = _db.mysql_port
|
||||
db['mysql_db'] = _db.mysql_db
|
||||
db['mysql_user'] = _db.mysql_user
|
||||
|
||||
param = {
|
||||
'total_size': total_size,
|
||||
'free_size': free_size,
|
||||
'core_cfg': get_cfg().core,
|
||||
'sys_cfg': get_cfg().sys
|
||||
'sys_cfg': get_cfg().sys,
|
||||
'web_cfg': {
|
||||
'version': TP_SERVER_VER,
|
||||
'core_server_rpc': get_cfg().common.core_server_rpc,
|
||||
'db': db
|
||||
}
|
||||
}
|
||||
|
||||
self.render('system/config.mako', page_param=json.dumps(param))
|
||||
|
|
Loading…
Reference in New Issue