mirror of https://github.com/tp4a/teleport
parent
3e9809c726
commit
00ead99bb1
|
@ -899,6 +899,9 @@ void TsHttpRpc::_rpc_func_rdp_play(const ex_astr& func_args, ex_astr& buf)
|
|||
char cmd_args[1024] = { 0 };
|
||||
ex_strformat(cmd_args, 1023, "%d \"%s\" \"%09d-%s-%s-%s-%s\"", rid, a_sid.c_str(), rid, a_user.c_str(), a_acc.c_str(), a_host.c_str(), a_start.c_str());
|
||||
|
||||
// TODO: 理论上不应该由助手来提前做域名转为IP这样的操作,而是应该讲域名发送给播放器,由播放器自己去处理
|
||||
// 但是在改造FreeRDP制作的播放器时,为了从服务器上下载文件,使用了Mongoose库,如果传入的是域名,会出现问题(貌似是异步查询DNS的问题)
|
||||
// 所以暂时先由助手进行域名IP转换。
|
||||
{
|
||||
unsigned int port_i = 0;
|
||||
struct mg_str scheme, query, fragment, user_info, host, path;
|
||||
|
|
|
@ -54,7 +54,7 @@ $app.create_controls = function (cb_stack) {
|
|||
// width: 240,
|
||||
header_render: 'filter_search',
|
||||
render: 'acc_info',
|
||||
fields: {id: 'id', username: 'username', host_ip: 'host_ip', router_ip: 'router_ip', router_port: 'router_port'}
|
||||
fields: {id: 'id', username: 'username', _host: '_host'}
|
||||
},
|
||||
{
|
||||
title: "远程连接协议",
|
||||
|
@ -140,7 +140,7 @@ $app.create_controls = function (cb_stack) {
|
|||
sort: true,
|
||||
header_render: 'filter_search',
|
||||
render: 'acc_info',
|
||||
fields: {id: 'id', username: 'username', host_ip: 'host_ip', router_ip: 'router_ip', router_port: 'router_port'}
|
||||
fields: {id: 'id', username: 'username', _host: '_host'}
|
||||
},
|
||||
{
|
||||
title: "远程连接协议",
|
||||
|
@ -296,9 +296,13 @@ $app._add_common_render = function (render) {
|
|||
render.acc_info = function (row_id, fields) {
|
||||
var ret = [];
|
||||
|
||||
ret.push('<span class="user-surname">' + fields.username + '@' + fields.host_ip + '</span>');
|
||||
if (fields.router_ip.length > 0)
|
||||
ret.push('<span class="user-account">由 ' + fields.router_ip + ':' + fields.router_port + ' 路由</span>');
|
||||
ret.push('<span class="user-surname">' + fields.username + '@' + fields._host.ip);
|
||||
if (fields._host.name.length > 0)
|
||||
ret.push(' <span class="host-name">(' + fields._host.name + ')</span>');
|
||||
ret.push('</span>');
|
||||
|
||||
if (fields._host.router_ip.length > 0)
|
||||
ret.push('<span class="user-account">由 ' + fields._host.router_ip + ':' + fields._host.router_port + ' 路由</span>');
|
||||
|
||||
return ret.join('');
|
||||
};
|
||||
|
|
|
@ -375,7 +375,7 @@ $app.create_controls = function (cb_stack) {
|
|||
sort: true,
|
||||
header_render: 'filter_search',
|
||||
render: 'acc_info',
|
||||
fields: {id: 'id', username: 'username', host_ip: 'host_ip', router_ip: 'router_ip', router_port: 'router_port'}
|
||||
fields: {id: 'id', username: 'username', _host: '_host'}
|
||||
},
|
||||
{
|
||||
title: "远程连接协议",
|
||||
|
@ -1316,9 +1316,12 @@ $app.on_table_sel_acc_render_created = function (render) {
|
|||
render.acc_info = function (row_id, fields) {
|
||||
var ret = [];
|
||||
|
||||
ret.push('<span class="field-name">' + fields.username + '@' + fields.host_ip + '</span>');
|
||||
if (fields.router_ip.length > 0)
|
||||
ret.push('<span class="field-desc">由 ' + fields.router_ip + ':' + fields.router_port + ' 路由</span>');
|
||||
ret.push('<span class="field-name">' + fields.username + '@' + fields._host.ip);
|
||||
if(fields._host.name.length > 0)
|
||||
ret.push(' (' + fields._host.name + ')</span>');
|
||||
ret.push('</span>');
|
||||
if (fields._host.router_ip.length > 0)
|
||||
ret.push('<span class="field-desc">由 ' + fields._host.router_ip + ':' + fields._host.router_port + ' 路由</span>');
|
||||
|
||||
return ret.join('');
|
||||
};
|
||||
|
|
|
@ -125,9 +125,12 @@ def get_group_with_member(sql_filter, sql_order, sql_limit):
|
|||
|
||||
|
||||
def get_accounts(sql_filter, sql_order, sql_limit, sql_restrict, sql_exclude):
|
||||
dbtp = get_db().table_prefix
|
||||
s = SQL(get_db())
|
||||
s.select_from('acc', ['id', 'host_id', 'host_ip', 'router_ip', 'router_port', 'username', 'protocol_type', 'auth_type', 'state'], alt_name='a')
|
||||
db = get_db()
|
||||
dbtp = db.table_prefix
|
||||
|
||||
s = SQL(db)
|
||||
# s.select_from('acc', ['id', 'host_id', 'host_ip', 'router_ip', 'router_port', 'username', 'protocol_type', 'auth_type', 'state'], alt_name='a')
|
||||
s.select_from('acc', ['id', 'host_id', 'username', 'protocol_type', 'auth_type', 'state'], alt_name='a')
|
||||
|
||||
str_where = ''
|
||||
_where = list()
|
||||
|
@ -168,12 +171,35 @@ def get_accounts(sql_filter, sql_order, sql_limit, sql_restrict, sql_exclude):
|
|||
s.order_by('a.state', _sort)
|
||||
else:
|
||||
log.e('unknown order field: {}\n'.format(sql_order['name']))
|
||||
return TPE_PARAM, s.total_count, s.recorder
|
||||
return TPE_PARAM, s.total_count, 1, s.recorder
|
||||
|
||||
if len(sql_limit) > 0:
|
||||
s.limit(sql_limit['page_index'], sql_limit['per_page'])
|
||||
|
||||
err = s.query()
|
||||
if err != TPE_OK:
|
||||
return err, 0, 1, None
|
||||
|
||||
# 得到主机id列表,然后查询相关主机的详细信息
|
||||
host_ids = []
|
||||
for _acc in s.recorder:
|
||||
if _acc.host_id not in host_ids:
|
||||
host_ids.append(_acc.host_id)
|
||||
s_host = SQL(db)
|
||||
s_host.select_from('host', ['id', 'name', 'ip', 'router_ip', 'router_port', 'state'], alt_name='h')
|
||||
str_host_ids = ','.join([str(i) for i in host_ids])
|
||||
s_host.where('h.id IN ({ids})'.format(ids=str_host_ids))
|
||||
err = s_host.query()
|
||||
if err != TPE_OK:
|
||||
return err, 0, None
|
||||
hosts = {}
|
||||
for _host in s_host.recorder:
|
||||
if _host.id not in hosts:
|
||||
hosts[_host.id] = _host
|
||||
|
||||
for _acc in s.recorder:
|
||||
_acc['_host'] = hosts[_acc.host_id]
|
||||
|
||||
return err, s.total_count, s.page_index, s.recorder
|
||||
|
||||
|
||||
|
@ -355,6 +381,3 @@ def remove_accounts(handler, host_id, acc_ids):
|
|||
tp_stats().acc_counter_change(-1)
|
||||
|
||||
return TPE_OK
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue