From 76a81386e5fc46b69d99532cbe24c3a03e5bfe28 Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Thu, 31 May 2018 01:54:11 +0800 Subject: [PATCH] temp. --- .../www/teleport/static/js/ops/remote-list.js | 17 +++++++++++++++++ server/www/teleport/view/error/error.mako | 2 +- server/www/teleport/view/ops/remote-list.mako | 10 ++++++++++ .../www/teleport/webroot/app/controller/ops.py | 10 +++++++++- server/www/teleport/webroot/app/model/group.py | 8 ++++++-- 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/server/www/teleport/static/js/ops/remote-list.js b/server/www/teleport/static/js/ops/remote-list.js index a616cc2..0bcc7f4 100644 --- a/server/www/teleport/static/js/ops/remote-list.js +++ b/server/www/teleport/static/js/ops/remote-list.js @@ -2,10 +2,27 @@ $app.on_init = function (cb_stack) { $app.dom = { + // assist_ver: $('#tp-assist-ver'), + btn_sel_group: $('#btn-sel-group button'), + group_list_for_sel: $('#btn-sel-group ul'), + btn_refresh_host: $('#btn-refresh-host') // box_rdp_option: $('#rdp-options') }; + console.log($app.options); + + var html = []; + $.each($app.options.host_groups, function (i, item) { + html.push('
  • ' + item.name + '
  • '); + }); + $app.dom.group_list_for_sel.append($(html.join(''))); + $app.dom.group_list_for_sel.find('a[data-tp-selector]').click(function () { + var obj = $(this); + //$app.set_selected_to_role(parseInt(obj.attr('data-tp-selector')), obj.attr('data-name')); + }); + + cb_stack .add($app.create_controls) .add($app.load_role_list); diff --git a/server/www/teleport/view/error/error.mako b/server/www/teleport/view/error/error.mako index 6429143..4a05e09 100644 --- a/server/www/teleport/view/error/error.mako +++ b/server/www/teleport/view/error/error.mako @@ -19,7 +19,7 @@
    - +
    diff --git a/server/www/teleport/view/ops/remote-list.mako b/server/www/teleport/view/ops/remote-list.mako index 33f699d..7a600da 100644 --- a/server/www/teleport/view/ops/remote-list.mako +++ b/server/www/teleport/view/ops/remote-list.mako @@ -26,6 +26,16 @@
    + +

    filter goes here...

    + + + +
    +
    主机列表 diff --git a/server/www/teleport/webroot/app/controller/ops.py b/server/www/teleport/webroot/app/controller/ops.py index 2bdb3b0..e36c502 100644 --- a/server/www/teleport/webroot/app/controller/ops.py +++ b/server/www/teleport/webroot/app/controller/ops.py @@ -4,7 +4,6 @@ import json import threading import time -import tornado.gen import tornado.httpclient from app.base.logger import log from app.base.configs import tp_cfg @@ -15,6 +14,7 @@ from app.const import * from app.model import account from app.model import host from app.model import ops +from app.model import group # 连接信息ID的基数,每次使用时均递增 tmp_conn_id_base = int(time.time()) @@ -34,9 +34,17 @@ class RemoteHandler(TPBaseHandler): ret = self.check_privilege(TP_PRIVILEGE_OPS) if ret != TPE_OK: return + + err, groups = group.get_host_groups_for_user(self.current_user['id'], self.current_user['privilege']) param = { + 'host_groups': groups, 'core_cfg': tp_cfg().core } + + # param = { + # 'core_cfg': tp_cfg().core + # } + self.render('ops/remote-list.mako', page_param=json.dumps(param)) diff --git a/server/www/teleport/webroot/app/model/group.py b/server/www/teleport/webroot/app/model/group.py index 46022e8..70d157d 100644 --- a/server/www/teleport/webroot/app/model/group.py +++ b/server/www/teleport/webroot/app/model/group.py @@ -386,9 +386,13 @@ def get_host_groups_for_user(user_id, user_privilege): for db_item in db_ret: hosts.append(str(db_item[0])) + if len(hosts) == 0: + return TPE_NOT_EXISTS, None + # step 2. get groups which include those hosts. - sql = 'SELECT `gid` FROM `{dbtp}group_map` WHERE (`type`={dbph} AND `mid` IN ({dbph})) GROUP BY `gid`;'.format(dbtp=db.table_prefix, dbph=db.place_holder, hosts=','.join(hosts)) - db_ret = db.query(sql, (TP_GROUP_HOST, ','.join(hosts))) + sql = 'SELECT `gid` FROM `{dbtp}group_map` WHERE (`type`={gtype} AND `mid` IN ({hids})) GROUP BY `gid`;'.format(dbtp=db.table_prefix, gtype=TP_GROUP_HOST, hids=','.join(hosts)) + db_ret = db.query(sql) + if db_ret is None or len(db_ret) == 0: return TPE_NOT_EXISTS, None