From 420fd1383067dc92567a8a4182a348cf1a166b21 Mon Sep 17 00:00:00 2001 From: ApexLiu Date: Tue, 24 Apr 2018 23:04:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=EF=BC=9A=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=8E=A7=E5=88=B6=E7=95=8C=E9=9D=A2=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E7=BC=96=E7=A0=81=E5=AE=8C=E6=88=90=EF=BC=8C=E5=87=86?= =?UTF-8?q?=E5=A4=87=E5=AE=9E=E7=8E=B0=E6=A0=B8=E5=BF=83=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=9A=84=E4=B8=9A=E5=8A=A1=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../www/teleport/static/js/system/config.js | 12 +++++----- .../www/teleport/webroot/app/base/configs.py | 19 +++++++++++++++ .../teleport/webroot/app/controller/system.py | 24 ++++++++++++++++--- 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/server/www/teleport/static/js/system/config.js b/server/www/teleport/static/js/system/config.js index 062c17f..b6c6f0a 100644 --- a/server/www/teleport/static/js/system/config.js +++ b/server/www/teleport/static/js/system/config.js @@ -533,26 +533,26 @@ $app.create_config_sess = function () { _sess.update_dom_session_cfg = function (sess) { _sess.dom.btn_sess_rdp_allow_clipboard.removeClass('tp-selected'); - if (sess.rdp_allow_clipboard) + if (sess.flag_rdp & TP_FLAG_RDP_CLIPBOARD) _sess.dom.btn_sess_rdp_allow_clipboard.addClass('tp-selected'); _sess.dom.btn_sess_rdp_allow_disk.removeClass('tp-selected'); - if (sess.rdp_allow_disk) + if (sess.flag_rdp & TP_FLAG_RDP_DISK) _sess.dom.btn_sess_rdp_allow_disk.addClass('tp-selected'); _sess.dom.btn_sess_rdp_allow_console.removeClass('tp-selected'); - if (sess.rdp_allow_console) + if (sess.flag_rdp & TP_FLAG_RDP_CONSOLE) _sess.dom.btn_sess_rdp_allow_console.addClass('tp-selected'); _sess.dom.btn_sess_ssh_allow_shell.removeClass('tp-selected'); - if (sess.ssh_allow_shell) + if (sess.flag_rdp & TP_FLAG_SSH_SHELL) _sess.dom.btn_sess_ssh_allow_shell.addClass('tp-selected'); _sess.dom.btn_sess_ssh_allow_sftp.removeClass('tp-selected'); - if (sess.ssh_allow_sftp) + if (sess.flag_rdp & TP_FLAG_SSH_SFTP) _sess.dom.btn_sess_ssh_allow_sftp.addClass('tp-selected'); - _sess.dom.input_noop_timeout.val(sess.timeout); + _sess.dom.input_noop_timeout.val(sess.noop_timeout); }; _sess.on_btn_save = function () { diff --git a/server/www/teleport/webroot/app/base/configs.py b/server/www/teleport/webroot/app/base/configs.py index d4b09c8..b3df8a6 100644 --- a/server/www/teleport/webroot/app/base/configs.py +++ b/server/www/teleport/webroot/app/base/configs.py @@ -494,6 +494,25 @@ class AppConfig(BaseAppConfig): # self.sys.login.auth = TP_LOGIN_AUTH_USERNAME_PASSWORD_CAPTCHA | TP_LOGIN_AUTH_USERNAME_OATH | TP_LOGIN_AUTH_USERNAME_PASSWORD_OATH self.sys.login.auth = TP_LOGIN_AUTH_USERNAME_PASSWORD_CAPTCHA | TP_LOGIN_AUTH_USERNAME_PASSWORD_OATH + # ===================================== + # 连接控制相关 + # ===================================== + try: + _sess = json.loads(conf_data['session']) + except: + log.w('session config not set or invalid, use default.\n') + _sess = {} + + self.sys.session = tp_convert_to_attr_dict(_sess) + if not self.sys.session.is_exists('noop_timeout'): + self.sys.session.noop_timeout = 15 # 15 minute + if not self.sys.session.is_exists('flag_record'): + self.sys.session.flag_record = TP_FLAG_ALL # TP_FLAG_RECORD_REPLAY | TP_FLAG_RECORD_REAL_TIME + if not self.sys.session.is_exists('flag_rdp'): + self.sys.session.flag_rdp = TP_FLAG_ALL # TP_FLAG_RDP_DESKTOP | TP_FLAG_RDP_CLIPBOARD | TP_FLAG_RDP_DISK | TP_FLAG_RDP_CONSOLE + if not self.sys.session.is_exists('flag_ssh'): + self.sys.session.flag_ssh = TP_FLAG_ALL # TP_FLAG_SSH_SHELL | TP_FLAG_SSH_SFTP + # ===================================== # SMTP相关 # ===================================== diff --git a/server/www/teleport/webroot/app/controller/system.py b/server/www/teleport/webroot/app/controller/system.py index 0a96f73..1ea20c8 100644 --- a/server/www/teleport/webroot/app/controller/system.py +++ b/server/www/teleport/webroot/app/controller/system.py @@ -250,7 +250,7 @@ class DoSaveCfgHandler(TPBaseJsonHandler): else: return self.write_json(err) - if 'password' in args: + elif 'password' in args: _cfg = args['password'] _allow_reset = _cfg['allow_reset'] _force_strong = _cfg['force_strong'] @@ -263,7 +263,7 @@ class DoSaveCfgHandler(TPBaseJsonHandler): else: return self.write_json(err) - if 'login' in args: + elif 'login' in args: _cfg = args['login'] _session_timeout = _cfg['session_timeout'] _retry = _cfg['retry'] @@ -279,7 +279,23 @@ class DoSaveCfgHandler(TPBaseJsonHandler): else: return self.write_json(err) - if 'storage' in args: + elif 'session' in args: + _cfg = args['session'] + _noop_timeout = _cfg['noop_timeout'] + _flag_record = _cfg['flag_record'] + _flag_rdp = _cfg['flag_rdp'] + _flag_ssh = _cfg['flag_ssh'] + err = system_model.save_config(self, '更新连接控制设置', 'session', _cfg) + if err == TPE_OK: + tp_cfg().sys.session.noop_timeout = _noop_timeout + tp_cfg().sys.session.flag_record = _flag_record + tp_cfg().sys.session.flag_rdp = _flag_rdp + tp_cfg().sys.session.flag_ssh = _flag_ssh + tp_session().update_default_expire() + else: + return self.write_json(err) + + elif 'storage' in args: _cfg = args['storage'] _keep_log = _cfg['keep_log'] _keep_record = _cfg['keep_record'] @@ -299,6 +315,8 @@ class DoSaveCfgHandler(TPBaseJsonHandler): tp_cfg().sys.storage.cleanup_minute = _cleanup_minute else: return self.write_json(err) + else: + return self.write_json(TPE_PARAM) return self.write_json(TPE_OK) except: