diff --git a/server/www/teleport/static/js/audit/record-list.js b/server/www/teleport/static/js/audit/record-list.js index 46eabca..c39e60a 100644 --- a/server/www/teleport/static/js/audit/record-list.js +++ b/server/www/teleport/static/js/audit/record-list.js @@ -252,7 +252,7 @@ $app.on_table_host_render_created = function (render) { }; render.time_begin = function (row_id, fields) { - return tp_format_datetime(tp_utc2local(fields.time_begin), 'MM-dd HH:mm:ss'); + return tp_format_datetime(fields.time_begin, 'MM-dd HH:mm:ss'); }; render.time_cost = function (row_id, fields) { @@ -262,7 +262,7 @@ $app.on_table_host_render_created = function (render) { _style = 'warning'; else if (fields.state === TP_SESS_STAT_STARTED) _style = 'primary'; - return ' ' + tp_second2str(tp_local2utc() - fields.time_begin) + ''; + return ' ' + tp_second2str(tp_timestamp_sec() - fields.time_begin) + ''; } else { if (fields.time_end === 0) { return ' 未知'; @@ -282,7 +282,7 @@ $app.on_table_host_render_created = function (render) { // _style = 'warning'; // else if (fields.state === TP_SESS_STAT_STARTED) // _style = 'primary'; - // return ' ' + tp_second2str(tp_local2utc() - fields.time_begin) + ''; + // return ' ' + tp_second2str(tp_timestamp_sec() - fields.time_begin) + ''; // } else { // return tp_second2str(fields.time_end - fields.time_begin); // } @@ -371,7 +371,7 @@ $app.do_replay_rdp = function (record_id, user_username, acc_username, host_ip, , user: user_username , acc: acc_username , host: host_ip - , start: time_begin//tp_format_datetime(tp_utc2local(time_begin), 'yyyyMMdd-HHmmss') + , start: time_begin//tp_format_datetime(time_begin, 'yyyyMMdd-HHmmss') } , function () { // func_success diff --git a/server/www/teleport/static/js/dashboard/dashboard.js b/server/www/teleport/static/js/dashboard/dashboard.js index 761bbc3..5ef4094 100644 --- a/server/www/teleport/static/js/dashboard/dashboard.js +++ b/server/www/teleport/static/js/dashboard/dashboard.js @@ -48,7 +48,7 @@ $app.init_sys_status_info = function (data) { fontSize: 11, fontFamily: 'Monaco, Lucida Console, Consolas, Courier', formatter: function (value, index) { - return tp_format_datetime_ms(tp_utc2local_ms(value), 'HH:mm'); + return tp_format_datetime(value, 'HH:mm'); } } }; @@ -95,8 +95,8 @@ $app.init_sys_status_info = function (data) { $app.bar_cpu_user = []; $app.bar_cpu_sys = []; for (i = 0; i < data.length; i++) { - $app.bar_cpu_user.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, data[i].cpu.u]}); - $app.bar_cpu_sys.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, data[i].cpu.s]}); + $app.bar_cpu_user.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, data[i].cpu.u]}); + $app.bar_cpu_sys.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, data[i].cpu.s]}); } var clr_cpu_user = '#e2524c'; @@ -191,7 +191,7 @@ $app.init_sys_status_info = function (data) { $app.bar_mem_used = []; for (i = 0; i < data.length; i++) { - $app.bar_mem_used.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, tp_digital_precision(data[i].mem.u * 100 / data[i].mem.t, 1)]}); + $app.bar_mem_used.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, tp_digital_precision(data[i].mem.u * 100 / data[i].mem.t, 1)]}); } var clr_mem = '#5671e2'; @@ -269,8 +269,8 @@ $app.init_sys_status_info = function (data) { $app.bar_net_recv = []; $app.bar_net_sent = []; for (i = 0; i < data.length; i++) { - $app.bar_net_recv.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, data[i].net.r]}); - $app.bar_net_sent.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, data[i].net.s]}); + $app.bar_net_recv.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, data[i].net.r]}); + $app.bar_net_sent.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, data[i].net.s]}); } var clr_net_sent = '#558c5a'; @@ -342,8 +342,8 @@ $app.init_sys_status_info = function (data) { $app.bar_disk_read = []; $app.bar_disk_write = []; for (i = 0; i < data.length; i++) { - $app.bar_disk_read.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, data[i].disk.r]}); - $app.bar_disk_write.push({name: tp_format_datetime_ms(tp_utc2local_ms(data[i].t), 'HH:mm:ss'), value: [data[i].t, data[i].disk.w]}); + $app.bar_disk_read.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, data[i].disk.r]}); + $app.bar_disk_write.push({name: tp_format_datetime(data[i].t, 'HH:mm:ss'), value: [data[i].t, data[i].disk.w]}); } var clr_disk_read = '#558c5a'; @@ -489,31 +489,31 @@ $app.init_ws = function () { if (t.method === 'subscribe' && t.param === 'sys_status') { $app.bar_cpu_user.shift(); - $app.bar_cpu_user.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, t.data.cpu.u]}); + $app.bar_cpu_user.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, t.data.cpu.u]}); $app.bar_cpu_sys.shift(); - $app.bar_cpu_sys.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, t.data.cpu.s]}); + $app.bar_cpu_sys.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, t.data.cpu.s]}); $app.bar_cpu.setOption( {series: [{data: $app.bar_cpu_sys}, {data: $app.bar_cpu_user}]} ); $app.bar_mem_used.shift(); - $app.bar_mem_used.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, Math.round(t.data.mem.u / t.data.mem.t * 100, 2)]}); + $app.bar_mem_used.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, Math.round(t.data.mem.u / t.data.mem.t * 100, 2)]}); $app.bar_mem.setOption( {series: [{data: $app.bar_mem_used}]} ); $app.bar_net_recv.shift(); - $app.bar_net_recv.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, t.data.net.r]}); + $app.bar_net_recv.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, t.data.net.r]}); $app.bar_net_sent.shift(); - $app.bar_net_sent.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, t.data.net.s]}); + $app.bar_net_sent.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, t.data.net.s]}); $app.bar_net.setOption( {series: [{data: $app.bar_net_sent}, {data: $app.bar_net_recv}]} ); $app.bar_disk_read.shift(); - $app.bar_disk_read.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, t.data.disk.r]}); + $app.bar_disk_read.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, t.data.disk.r]}); $app.bar_disk_write.shift(); - $app.bar_disk_write.push({name: tp_format_datetime_ms(tp_utc2local_ms(t.data.t), 'HH:mm:ss'), value: [t.data.t, t.data.disk.w]}); + $app.bar_disk_write.push({name: tp_format_datetime(t.data.t, 'HH:mm:ss'), value: [t.data.t, t.data.disk.w]}); $app.bar_disk.setOption( {series: [{data: $app.bar_disk_read}, {data: $app.bar_disk_write}]} ); diff --git a/server/www/teleport/static/js/ops/session-list.js b/server/www/teleport/static/js/ops/session-list.js index 9157bce..098e6be 100644 --- a/server/www/teleport/static/js/ops/session-list.js +++ b/server/www/teleport/static/js/ops/session-list.js @@ -283,7 +283,7 @@ $app.on_table_session_render_created = function (render) { }; render.time_begin = function (row_id, fields) { - return tp_format_datetime(tp_utc2local(fields.time_begin), 'MM-dd HH:mm:ss'); + return tp_format_datetime(fields.time_begin, 'MM-dd HH:mm:ss'); }; render.time_cost = function (row_id, fields) { @@ -293,7 +293,7 @@ $app.on_table_session_render_created = function (render) { _style = 'warning'; else if (fields.state === TP_SESS_STAT_STARTED) _style = 'primary'; - return ' ' + tp_second2str(tp_local2utc() - fields.time_begin) + ''; + return ' ' + tp_second2str(tp_timestamp_sec() - fields.time_begin) + ''; } else { return tp_second2str(fields.time_end - fields.time_begin); } diff --git a/server/www/teleport/static/js/system/syslog.js b/server/www/teleport/static/js/system/syslog.js index 90efb48..a624617 100644 --- a/server/www/teleport/static/js/system/syslog.js +++ b/server/www/teleport/static/js/system/syslog.js @@ -184,7 +184,7 @@ $app.on_table_host_render_created = function (render) { // }; render.log_time = function (row_id, fields) { - return tp_format_datetime(tp_utc2local(fields.log_time)); + return tp_format_datetime(fields.log_time); }; render.user = function (row, fields) { diff --git a/server/www/teleport/static/js/teleport/controls.js b/server/www/teleport/static/js/teleport/controls.js index c673404..dd67f9a 100644 --- a/server/www/teleport/static/js/teleport/controls.js +++ b/server/www/teleport/static/js/teleport/controls.js @@ -28,7 +28,7 @@ $tp.create_table = function (options) { // clear // reset_filter - var _tbl = {}; + let _tbl = {}; // 此表格绑定的DOM对象的ID,用于JQuery的选择器 _tbl.dom_id = options.dom_id; @@ -223,7 +223,6 @@ $tp.create_table = function (options) { _tbl.load_data = function (cb_stack, cb_args) { cb_stack = cb_stack || CALLBACK_STACK.create(); - //log.v('load table data.', cb_args); if (_tbl.paging_ctrl) _tbl.per_page = _tbl.paging_ctrl.get_per_page(); else @@ -238,7 +237,6 @@ $tp.create_table = function (options) { console.error('filter', name, 'has have no get_filter() interface.'); } var _f = ctrl.get_filter(); - // console.log('filter from', name, _f); $.each(_f, function (k, v) { _filter[k] = v; }); @@ -949,7 +947,7 @@ $tp.create_table_render = function (tbl, on_created) { _tbl_render.date_time = function (row_id, fields) { if (0 === fields.timestamp) return ''; - return '' + tp_format_datetime(tp_utc2local(fields.timestamp)) + ''; + return '' + tp_format_datetime(fields.timestamp) + ''; }; _tbl_render.date_time_local = function (row_id, fields) { diff --git a/server/www/teleport/static/js/tp-assist.js b/server/www/teleport/static/js/tp-assist.js index cc983db..65fb055 100644 --- a/server/www/teleport/static/js/tp-assist.js +++ b/server/www/teleport/static/js/tp-assist.js @@ -239,7 +239,7 @@ $assist.do_rdp_replay = function (args, func_success, func_error) { // now fix the args. args.web = $tp.web_server; // (string) - teleport server base address, like "http://127.0.0.1:7190", without end-slash. args.sid = Cookies.get('_sid'); // (string) - current login user's session-id. - args.start = tp_format_datetime(tp_utc2local(args.start), 'yyyyMMdd-HHmmss'); // (string) - convert UTC timestamp to local human-readable string. + args.start = tp_format_datetime(args.start, 'yyyyMMdd-HHmmss'); // (string) - convert UTC timestamp to local human-readable string. console.log('do-rdp-replay:', args); diff --git a/server/www/teleport/static/js/tp-utils.js b/server/www/teleport/static/js/tp-utils.js index 18f2212..a4614b5 100644 --- a/server/www/teleport/static/js/tp-utils.js +++ b/server/www/teleport/static/js/tp-utils.js @@ -7,15 +7,15 @@ //=================================================== // constants. //=================================================== -var KB = 1024; -var MB = 1048576; -var GB = 1073741824; -var TB = 1099511627776; -var PB = 1125899906842624; +const KB = 1024; +const MB = 1048576; +const GB = 1073741824; +const TB = 1099511627776; +const PB = 1125899906842624; -var SECONDS_PER_DAY = 86400; -var SECONDS_PER_HOUR = 3600; -var SECONDS_PER_MINUTE = 60; +const SECONDS_PER_DAY = 86400; +const SECONDS_PER_HOUR = 3600; +const SECONDS_PER_MINUTE = 60; //=================================================== // extend prototype functions. @@ -43,17 +43,17 @@ if (!String.prototype.realLength) { // http://jsfiddle.net/ghvj4gy9/embedded/result,js/ function tp_is_email(email) { //var re = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/; - var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; + let re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; return re.test(email); } function tp_is_ip(ip) { - var re = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/ + let re = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/ return re.test(ip); } function tp_is_domain(domain) { - var re = /^[a-zA-Z0-9\-]+\.[a-zA-Z]+$/ + let re = /^[a-zA-Z0-9\-]+\.[a-zA-Z]+$/ return re.test(domain); } @@ -64,11 +64,9 @@ function tp_is_host(host) { function tp_is_empty_str(str) { if (_.isEmpty(str)) return true; - var regu = "^[ \t]+$"; - var re = new RegExp(regu); + let regu = "^[ \t]+$"; + let re = new RegExp(regu); return re.test(str); - -// return (str.replace(/(^\s*)|(\s*$)/g, "").length !== 0); } //=================================================== @@ -85,29 +83,23 @@ function tp_digital_precision(num, keep) { function tp_size2str(size, precision) { precision = precision || 0; - var s = 0; - var k = ''; + let s = 0, k = ''; if (size < KB) { s = size; k = 'B'; - } - else if (size < MB) { + } else if (size < MB) { s = tp_digital_precision(size / KB, precision); k = 'KB' - } - else if (size < GB) { + } else if (size < GB) { s = tp_digital_precision(size / MB, precision); k = 'MB' - } - else if (size < TB) { + } else if (size < TB) { s = tp_digital_precision(size / GB, precision); k = 'GB' - } - else if (size < PB) { + } else if (size < PB) { s = tp_digital_precision(size / TB, precision); k = 'TB' - } - else { + } else { s = tp_digital_precision(size / PB, precision); k = 'PB' } @@ -116,15 +108,15 @@ function tp_size2str(size, precision) { } function tp_second2str(sec) { - var _ret = ''; + let _ret = ''; if (sec >= SECONDS_PER_DAY) { - var _d = Math.floor(sec / SECONDS_PER_DAY); + let _d = Math.floor(sec / SECONDS_PER_DAY); _ret = '' + _d + '天'; sec = sec % SECONDS_PER_DAY; } if (sec >= SECONDS_PER_HOUR) { - var _h = Math.floor(sec / SECONDS_PER_HOUR); + let _h = Math.floor(sec / SECONDS_PER_HOUR); _ret += '' + _h + '小时'; sec = sec % SECONDS_PER_HOUR; } else if (_ret.length > 0) { @@ -132,7 +124,7 @@ function tp_second2str(sec) { } if (sec >= SECONDS_PER_MINUTE) { - var _m = Math.floor(sec / SECONDS_PER_MINUTE); + let _m = Math.floor(sec / SECONDS_PER_MINUTE); _ret += '' + _m + '分'; sec = sec % SECONDS_PER_MINUTE; } else if (_ret.length > 0) { @@ -144,35 +136,22 @@ function tp_second2str(sec) { } function tp_get_cookie(name) { - var r = document.cookie.match("\\b" + name + "=([^;]*)\\b"); + let r = document.cookie.match("\\b" + name + "=([^;]*)\\b"); return r ? r[1] : undefined; } -function tp_utc2local(timestamp) { - var d = new Date(timestamp * 1000); - var _local = d.getTime() - (d.getTimezoneOffset() * 60000); - return Math.round(_local / 1000); +function tp_timestamp_ms() { + return (new Date()).getTime(); } -function tp_utc2local_ms(timestamp) { - var d = new Date(timestamp); - var _local = d.getTime() - (d.getTimezoneOffset() * 60000); - return Math.round(_local); -} - -function tp_local2utc(timestamp) { - var ts = timestamp || Math.floor(Date.now() / 1000); - var d = new Date(ts * 1000); - var _utc = d.getTime() + (d.getTimezoneOffset() * 60000); - return Math.round(_utc / 1000); +function tp_timestamp_sec() { + return Math.floor((new Date()).getTime() / 1000); } function tp_format_datetime_ms(timestamp, format) { - var d = new Date(timestamp); - //return '' + d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds(); - - var fmt = format || 'yyyy-MM-dd HH:mm:ss'; - var o = { + let d = new Date(timestamp); + let fmt = format || 'yyyy-MM-dd HH:mm:ss'; + let o = { "M+": d.getMonth() + 1, //月份 "d+": d.getDate(), //日 "H+": d.getHours(), //小时 @@ -185,10 +164,10 @@ function tp_format_datetime_ms(timestamp, format) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length)); } - for (var k in o) { + for (let k in o) { if (new RegExp("(" + k + ")").test(fmt)) { if (o.hasOwnProperty(k)) - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; @@ -198,13 +177,13 @@ function tp_format_datetime(timestamp, format) { return tp_format_datetime_ms(timestamp * 1000, format); } -var base64KeyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; +const base64KeyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; function tp_base64_encode(input) { - var output = ""; - var chr1, chr2, chr3 = ""; - var enc1, enc2, enc3, enc4 = ""; - var i = 0; + let output = ""; + let chr1, chr2, chr3 = ""; + let enc1, enc2, enc3, enc4 = ""; + let i = 0; do { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); @@ -226,7 +205,7 @@ function tp_base64_encode(input) { } function tp_base64_to_binarray(data) { - var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, + let o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, tmp_arr = []; @@ -234,7 +213,7 @@ function tp_base64_to_binarray(data) { return tmp_arr; } - do { // unpack four hexets into three octets using index points in b64 + do { h1 = base64KeyStr.indexOf(data.charAt(i++)); h2 = base64KeyStr.indexOf(data.charAt(i++)); h3 = base64KeyStr.indexOf(data.charAt(i++)); @@ -262,7 +241,7 @@ function tp_base64_to_binarray(data) { } function tp_base64_decode(data) { - var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, + let o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, tmp_arr = []; @@ -271,7 +250,7 @@ function tp_base64_decode(data) { } data += ''; - do { // unpack four hexets into three octets using index points in b64 + do { h1 = base64KeyStr.indexOf(data.charAt(i++)); h2 = base64KeyStr.indexOf(data.charAt(i++)); h3 = base64KeyStr.indexOf(data.charAt(i++)); @@ -296,22 +275,16 @@ function tp_base64_decode(data) { } function tp_get_file_name(path) { - var reg = /(\\+)/g; + let reg = /(\\+)/g; path = path.replace(reg, "/"); - var _path = path.split('/'); + let _path = path.split('/'); return _path[_path.length - 1] } -var g_unique_id = (new Date()).valueOf(); - -function tp_generate_id() { - return g_unique_id++; -} - - function htmlEncode(_s) { - if (_s.length === 0) return ""; - var s = _s.replace(/&/g, "&"); + if (_s.length === 0) + return ""; + let s = _s.replace(/&/g, "&"); s = s.replace(//g, ">"); //s = s.replace(/ /g, " "); @@ -333,43 +306,24 @@ function htmlEncode(_s) { // return s; //} - -function tp_sleep4debug(duration) { - var now = new Date().getTime(); - while (new Date().getTime() < now + duration) { /* do nothing */ - } -} - -// 获取长度为len的随机字符串 -function tp_gen_random_string(len) { - len = len || 32; - var _chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; // 默认去掉了容易混淆的字符oO,Ll,9gq,Vv,Uu,I1 - var max_pos = _chars.length; - var ret = ''; - for (var i = 0; i < len; i++) { - ret += _chars.charAt(Math.floor(Math.random() * max_pos)); - } - return ret; -} - // 生成一个随机密码 function tp_gen_password(len) { len = len || 8; - var _chars = ['ABCDEFGHJKMNPQRSTWXYZ', 'abcdefhijkmnprstwxyz', '2345678']; // 默认去掉了容易混淆的字符oO,Ll,9gq,Vv,Uu,I1 - var _chars_len = []; - var i = 0; + const _chars = ['ABCDEFGHJKMNPQRSTWXYZ', 'abcdefhijkmnprstwxyz', '2345678']; // 默认去掉了容易混淆的字符oO,Ll,9gq,Vv,Uu,I1 + let _chars_len = []; + let i = 0; for (i = 0; i < _chars.length; ++i) { _chars_len[i] = _chars[i].length; } - var ret = ''; + let ret = ''; - var have_CHAR = false; - var have_char = false; - var have_num = false; + let have_CHAR = false; + let have_char = false; + let have_num = false; for (; ;) { ret = ''; for (i = 0; i < len; i++) { - var idx = Math.floor(Math.random() * _chars.length); + let idx = Math.floor(Math.random() * _chars.length); if (idx === 0) have_CHAR = true; else if (idx === 1) @@ -388,12 +342,12 @@ function tp_gen_password(len) { // 弱密码检测 function tp_check_strong_password(p) { - var s = 0; if (p.length < 8) return false; - for (var i = 0; i < p.length; ++i) { - var c = p.charCodeAt(i); + let i, s = 0; + for (i = 0; i < p.length; ++i) { + let c = p.charCodeAt(i); if (c >= 48 && c <= 57) // 数字 s |= 1; else if (c >= 65 && c <= 90) // 大写字母 diff --git a/server/www/teleport/static/js/user/bind-oath.js b/server/www/teleport/static/js/user/bind-oath.js index 738ed9e..4d38b58 100755 --- a/server/www/teleport/static/js/user/bind-oath.js +++ b/server/www/teleport/static/js/user/bind-oath.js @@ -129,7 +129,7 @@ $app.on_init = function (cb_stack) { $tp.ajax_post_json('/system/get-time', {}, function (ret) { if (ret.code === TPE_OK) { - $app.tp_time = tp_utc2local(ret.data); + $app.tp_time = ret.data; $app.show_tp_time(); } }, diff --git a/server/www/teleport/static/js/user/me.js b/server/www/teleport/static/js/user/me.js index 0734025..e9ffdd6 100644 --- a/server/www/teleport/static/js/user/me.js +++ b/server/www/teleport/static/js/user/me.js @@ -15,7 +15,7 @@ $app.on_init = function (cb_stack, cb_args) { if (val === 0) obj.text('-'); else - obj.text(tp_format_datetime(tp_utc2local(val))); + obj.text(tp_format_datetime(val)); }; $app.fix_time_display('create-time'); diff --git a/server/www/teleport/webroot/app/base/database/create.py b/server/www/teleport/webroot/app/base/database/create.py index d24212f..3b84bdd 100644 --- a/server/www/teleport/webroot/app/base/database/create.py +++ b/server/www/teleport/webroot/app/base/database/create.py @@ -2,7 +2,7 @@ from app.const import * from app.logic.auth.password import tp_password_generate_secret -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec from app.base.logger import log @@ -826,7 +826,7 @@ class DatabaseInit: ) def _make_builtin_data(self, sysadmin, email, password): - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() self._db_exec( '设定数据库版本', diff --git a/server/www/teleport/webroot/app/base/database/upgrade.py b/server/www/teleport/webroot/app/base/database/upgrade.py index 6a8a886..78ff07b 100644 --- a/server/www/teleport/webroot/app/base/database/upgrade.py +++ b/server/www/teleport/webroot/app/base/database/upgrade.py @@ -2,7 +2,7 @@ # from app.const import * # from app.logic.auth.password import tp_password_generate_secret -# from app.base.utils import tp_timestamp_utc_now +# from app.base.utils import tp_timestamp_sec from app.base.logger import log # import shutil diff --git a/server/www/teleport/webroot/app/base/stats.py b/server/www/teleport/webroot/app/base/stats.py index a36eb40..c3574ce 100644 --- a/server/www/teleport/webroot/app/base/stats.py +++ b/server/www/teleport/webroot/app/base/stats.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import psutil -from app.base.utils import tp_utc_timestamp_ms +from app.base.utils import tp_timestamp_ms from app.const import * from app.base.wss import tp_wss from app.base.cron import tp_cron @@ -35,7 +35,7 @@ class TPStats(object): } def init(self): - t = tp_utc_timestamp_ms() - 10 * 60 * 1000 + t = tp_timestamp_ms() - 10 * 60 * 1000 cnt = int((10 * 60 + self._INTERVAL - 1) / self._INTERVAL) for i in range(cnt): val = { @@ -73,7 +73,7 @@ class TPStats(object): return True def _check_sys_stats(self): - val = {'t': tp_utc_timestamp_ms()} + val = {'t': tp_timestamp_ms()} cpu = psutil.cpu_times_percent() val['cpu'] = {'u': cpu.user, 's': cpu.system} diff --git a/server/www/teleport/webroot/app/base/utils.py b/server/www/teleport/webroot/app/base/utils.py index 426cebd..c21621a 100644 --- a/server/www/teleport/webroot/app/base/utils.py +++ b/server/www/teleport/webroot/app/base/utils.py @@ -160,16 +160,12 @@ def tp_second2human(n): return ret -def tp_timestamp_local_to_utc(t): - return int(datetime.datetime.utcfromtimestamp(time.mktime(time.localtime(t))).timestamp()) +def tp_timestamp_sec(): + return int(datetime.datetime.now().timestamp()) -def tp_timestamp_utc_now(): - return int(datetime.datetime.utcnow().timestamp()) - - -def tp_utc_timestamp_ms(): - return int(datetime.datetime.utcnow().timestamp() * 1000) +def tp_timestamp_ms(): + return int(datetime.datetime.now().timestamp() * 1000) def tp_bytes2string(b, encode='utf8'): @@ -253,7 +249,7 @@ class UniqueId: if '__tp_unique_id__' in builtins.__dict__: raise RuntimeError('UniqueId object exists, can not create more than one instance.') - self._id = tp_timestamp_utc_now() + self._id = tp_timestamp_sec() self._locker = threading.RLock() def generate(self): diff --git a/server/www/teleport/webroot/app/model/account.py b/server/www/teleport/webroot/app/model/account.py index 3cb22b5..9e2240b 100644 --- a/server/www/teleport/webroot/app/model/account.py +++ b/server/www/teleport/webroot/app/model/account.py @@ -4,7 +4,7 @@ from app.const import * from app.base.logger import log from app.base.db import get_db, SQL from . import syslog -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec from app.base.stats import tp_stats @@ -246,7 +246,7 @@ def add_account(handler, host_id, args): 添加一个远程账号 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() operator = handler.get_current_user() # 1. 判断是否已经存在了 diff --git a/server/www/teleport/webroot/app/model/audit.py b/server/www/teleport/webroot/app/model/audit.py index b0527e2..0ce5aaa 100644 --- a/server/www/teleport/webroot/app/model/audit.py +++ b/server/www/teleport/webroot/app/model/audit.py @@ -5,7 +5,7 @@ from app.base.logger import log from app.base.db import get_db, SQL from app.model import syslog from app.model import policy -from app.base.utils import AttrDict, tp_timestamp_utc_now +from app.base.utils import AttrDict, tp_timestamp_sec def get_by_id(pid): @@ -59,7 +59,7 @@ def create_policy(handler, args): 创建一个授权策略 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() # 1. 判断此账号是否已经存在了 s = SQL(db) @@ -176,7 +176,7 @@ def add_members(handler, policy_id, policy_type, ref_type, members): operator = handler.get_current_user() db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() sql = [] # for uid in members: diff --git a/server/www/teleport/webroot/app/model/group.py b/server/www/teleport/webroot/app/model/group.py index 9afdd4f..59c13db 100644 --- a/server/www/teleport/webroot/app/model/group.py +++ b/server/www/teleport/webroot/app/model/group.py @@ -3,7 +3,7 @@ from app.const import * from app.base.logger import log from app.base.db import get_db, SQL -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec from app.model import syslog from app.model import policy @@ -13,7 +13,7 @@ def create(handler, gtype, name, desc): return TPE_PARAM, 0 db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() # 1. 判断是否已经存在了 sql = 'SELECT id FROM {dbtp}group WHERE type={gtype} AND name="{gname}";'.format(dbtp=db.table_prefix, gtype=gtype, gname=name) @@ -251,7 +251,7 @@ def make_groups(handler, gtype, glist, failed): 根据传入的组列表,查询每个组的名称对应的id,如果没有,则创建之 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() operator = handler.get_current_user() name_list = list() diff --git a/server/www/teleport/webroot/app/model/host.py b/server/www/teleport/webroot/app/model/host.py index 4390a80..84ec4fe 100644 --- a/server/www/teleport/webroot/app/model/host.py +++ b/server/www/teleport/webroot/app/model/host.py @@ -8,7 +8,7 @@ from app.base.logger import log from app.base.db import get_db, SQL from . import syslog from app.base.stats import tp_stats -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec def get_host_info(host_id): @@ -100,7 +100,7 @@ def add_host(handler, args): 添加一个远程主机 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() # 1. 判断此主机是否已经存在了 if len(args['router_ip']) > 0: diff --git a/server/www/teleport/webroot/app/model/ops.py b/server/www/teleport/webroot/app/model/ops.py index 63d58b7..8904b97 100644 --- a/server/www/teleport/webroot/app/model/ops.py +++ b/server/www/teleport/webroot/app/model/ops.py @@ -7,7 +7,7 @@ from app.base.logger import log from app.base.db import get_db, SQL from app.model import syslog from app.model import policy -from app.base.utils import AttrDict, tp_timestamp_utc_now +from app.base.utils import AttrDict, tp_timestamp_sec def get_by_id(pid): @@ -72,7 +72,7 @@ def create_policy(handler, args): 创建一个授权策略 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() # 1. 判断此账号是否已经存在了 s = SQL(db) @@ -189,7 +189,7 @@ def add_members(handler, policy_id, policy_type, ref_type, members): operator = handler.get_current_user() db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() sql = [] for m in members: diff --git a/server/www/teleport/webroot/app/model/policy.py b/server/www/teleport/webroot/app/model/policy.py index 8b0efe8..4a1e2f7 100644 --- a/server/www/teleport/webroot/app/model/policy.py +++ b/server/www/teleport/webroot/app/model/policy.py @@ -4,7 +4,7 @@ from app.const import * from app.base.logger import log from app.base.db import get_db, SQL from app.model import syslog -from app.base.utils import AttrDict, tp_timestamp_utc_now +from app.base.utils import AttrDict, tp_timestamp_sec def rebuild_ops_auz_map(): diff --git a/server/www/teleport/webroot/app/model/record.py b/server/www/teleport/webroot/app/model/record.py index 2fdeb52..87a6fa0 100644 --- a/server/www/teleport/webroot/app/model/record.py +++ b/server/www/teleport/webroot/app/model/record.py @@ -10,7 +10,7 @@ from app.const import * from app.base.configs import tp_cfg from app.base.db import get_db, SQL from app.base.logger import log -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec import tornado.gen @@ -483,11 +483,11 @@ def session_fix(): sql_list = [] sql = 'UPDATE `{dbtp}record` SET state={new_state}, time_end={time_end} WHERE state={old_state};' \ - ''.format(dbtp=db.table_prefix, new_state=TP_SESS_STAT_ERR_RESET, old_state=TP_SESS_STAT_RUNNING, time_end=tp_timestamp_utc_now()) + ''.format(dbtp=db.table_prefix, new_state=TP_SESS_STAT_ERR_RESET, old_state=TP_SESS_STAT_RUNNING, time_end=tp_timestamp_sec()) sql_list.append(sql) sql = 'UPDATE `{dbtp}record` SET state={new_state},time_end={time_end} WHERE state={old_state};' \ - ''.format(dbtp=db.table_prefix, new_state=TP_SESS_STAT_ERR_START_RESET, old_state=TP_SESS_STAT_STARTED, time_end=tp_timestamp_utc_now()) + ''.format(dbtp=db.table_prefix, new_state=TP_SESS_STAT_ERR_START_RESET, old_state=TP_SESS_STAT_STARTED, time_end=tp_timestamp_sec()) sql_list.append(sql) return db.transaction(sql_list) @@ -499,7 +499,7 @@ def session_begin(sid, user_id, host_id, acc_id, user_username, acc_username, ho ';'.format(db.table_prefix, sid=sid, user_id=user_id, host_id=host_id, acc_id=acc_id, user_username=user_username, host_ip=host_ip, conn_ip=conn_ip, conn_port=conn_port, client_ip=client_ip, acc_username=acc_username, auth_type=auth_type, protocol_type=protocol_type, protocol_sub_type=protocol_sub_type, - time_begin=tp_timestamp_utc_now()) + time_begin=tp_timestamp_sec()) ret = db.exec(sql) if not ret: @@ -520,7 +520,7 @@ def session_update(record_id, protocol_sub_type, state): def session_end(record_id, ret_code): db = get_db() - sql = 'UPDATE `{}record` SET state={}, time_end={} WHERE id={};'.format(db.table_prefix, int(ret_code), tp_timestamp_utc_now(), int(record_id)) + sql = 'UPDATE `{}record` SET state={}, time_end={} WHERE id={};'.format(db.table_prefix, int(ret_code), tp_timestamp_sec(), int(record_id)) return db.exec(sql) @@ -530,7 +530,7 @@ def cleanup_storage(handler): sto = tp_cfg().sys.storage db = get_db() - _now = tp_timestamp_utc_now() + _now = tp_timestamp_sec() msg = [] have_error = False diff --git a/server/www/teleport/webroot/app/model/stats.py b/server/www/teleport/webroot/app/model/stats.py index da03baf..d53ab91 100644 --- a/server/www/teleport/webroot/app/model/stats.py +++ b/server/www/teleport/webroot/app/model/stats.py @@ -3,7 +3,7 @@ from app.const import * from app.base.db import get_db from app.base.configs import tp_cfg -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec def get_basic_stats(): @@ -53,7 +53,7 @@ def update_temp_locked_user_state(): if sys_cfg.login.lock_timeout == 0: return - _lock_time = tp_timestamp_utc_now() - (sys_cfg.login.lock_timeout * 60) + _lock_time = tp_timestamp_sec() - (sys_cfg.login.lock_timeout * 60) db = get_db() if db.need_create or db.need_upgrade: return diff --git a/server/www/teleport/webroot/app/model/syslog.py b/server/www/teleport/webroot/app/model/syslog.py index 333e584..77ab6b4 100644 --- a/server/www/teleport/webroot/app/model/syslog.py +++ b/server/www/teleport/webroot/app/model/syslog.py @@ -3,7 +3,7 @@ from app.const import * from app.base.db import get_db, SQL from app.base.logger import log -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec def sys_log(operator, client_ip, code, message=""): @@ -13,7 +13,7 @@ def sys_log(operator, client_ip, code, message=""): 'VALUES ("{user_name}","{user_surname}","{client_ip}",{code},{log_time},"{message}")' \ ';'.format(db.table_prefix, user_name=operator['username'], user_surname=operator['surname'], client_ip=client_ip, code=code, - log_time=tp_timestamp_utc_now(), message=message + log_time=tp_timestamp_sec(), message=message ) ret = db.exec(sql) diff --git a/server/www/teleport/webroot/app/model/system.py b/server/www/teleport/webroot/app/model/system.py index c87e983..b96a27a 100644 --- a/server/www/teleport/webroot/app/model/system.py +++ b/server/www/teleport/webroot/app/model/system.py @@ -4,7 +4,7 @@ import json from app.const import * from app.base.db import get_db, SQL from app.base.logger import log -from app.base.utils import tp_timestamp_utc_now +from app.base.utils import tp_timestamp_sec from . import syslog @@ -33,7 +33,7 @@ def save_config(handler, msg, name, value): def add_role(handler, role_name, privilege): db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() operator = handler.get_current_user() # 1. 判断是否已经存在了 diff --git a/server/www/teleport/webroot/app/model/user.py b/server/www/teleport/webroot/app/model/user.py index b3688ce..3581c85 100755 --- a/server/www/teleport/webroot/app/model/user.py +++ b/server/www/teleport/webroot/app/model/user.py @@ -3,7 +3,7 @@ from app.base.configs import tp_cfg from app.base.db import get_db, SQL from app.base.logger import log -from app.base.utils import tp_timestamp_utc_now, tp_generate_random +from app.base.utils import tp_timestamp_sec, tp_generate_random from app.const import * from app.model import syslog from app.base.stats import tp_stats @@ -73,7 +73,7 @@ def login(handler, username, password=None, oath_code=None, check_bind_oath=Fals if user_info['state'] == TP_STATE_LOCKED: # 用户已经被锁定,如果系统配置为一定时间后自动解锁,则更新一下用户信息 if sys_cfg.login.lock_timeout != 0: - if tp_timestamp_utc_now() - user_info.lock_time > sys_cfg.login.lock_timeout * 60: + if tp_timestamp_sec() - user_info.lock_time > sys_cfg.login.lock_timeout * 60: user_info.fail_count = 0 user_info.state = TP_STATE_NORMAL if user_info['state'] == TP_STATE_LOCKED: @@ -94,7 +94,7 @@ def login(handler, username, password=None, oath_code=None, check_bind_oath=Fals if user_info['type'] == TP_USER_TYPE_LOCAL: # 如果系统配置了密码有效期,则检查用户的密码是否失效 if sys_cfg.password.timeout != 0: - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() if user_info['last_chpass'] + (sys_cfg.password.timeout * 60 * 60 * 24) < _time_now: msg = '登录失败,用户密码已过期' syslog.sys_log(user_info, handler.request.remote_ip, TPE_USER_AUTH, msg) @@ -269,7 +269,7 @@ def create_users(handler, user_list, success, failed): 批量创建用户 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() operator = handler.get_current_user() name_list = list() @@ -329,7 +329,7 @@ def create_user(handler, user): 创建一个用户账号 """ db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() operator = handler.get_current_user() if 'type' not in user: @@ -476,7 +476,7 @@ def set_password(handler, mode, user_id, password): if len(surname) == 0: surname = name - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() sql = 'UPDATE `{}user` SET `password`="{password}", `last_chpass`={last_chpass} WHERE `id`={user_id};' \ ''.format(db.table_prefix, password=password, last_chpass=_time_now, user_id=user_id) @@ -499,7 +499,7 @@ def generate_reset_password_token(handler, user_id): db = get_db() operator = handler.get_current_user() s = SQL(db) - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() # 0. query user's email by user_id err = s.select_from('user', ['email'], alt_name='u').where('u.id={user_id}'.format(user_id=user_id)).query() @@ -542,7 +542,7 @@ def generate_reset_password_token(handler, user_id): def check_reset_token(token): db = get_db() # s = SQL(db) - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() # 0. remove expired token (after 3 days) sql = 'DELETE FROM `{dbtp}user_rpt` WHERE create_time<{dbph};'.format(dbtp=db.table_prefix, dbph=db.place_holder) @@ -573,7 +573,7 @@ def remove_reset_token(token): def update_login_info(handler, user_id): db = get_db() - _time_now = tp_timestamp_utc_now() + _time_now = tp_timestamp_sec() sql = 'UPDATE `{}user` SET ' \ 'fail_count=0, last_login=login_time, last_ip=login_ip, login_time={login_time},' \ @@ -663,7 +663,7 @@ def update_fail_count(handler, user_info): if sys_cfg.login.retry != 0 and fail_count >= sys_cfg.login.retry: is_locked = True sql = 'UPDATE `{}user` SET state={state}, lock_time={lock_time} WHERE id={uid};' \ - ''.format(db.table_prefix, state=TP_STATE_LOCKED, lock_time=tp_timestamp_utc_now(), uid=user_info.id) + ''.format(db.table_prefix, state=TP_STATE_LOCKED, lock_time=tp_timestamp_sec(), uid=user_info.id) sql_list.append(sql) if db.transaction(sql_list):