修正:当页面超时后,执行导入资产或导入用户的操作会失败,但得不到正确的错误原因。

pull/105/head
Apex Liu 2018-09-06 02:54:05 +08:00
parent f565a7c92f
commit 878ca416b2
4 changed files with 50 additions and 23 deletions

View File

@ -4,7 +4,7 @@
<div id="page-footer">
<nav class="navbar navbar-fixed-bottom">
<div class="container">
<p>触维软件旗下产品 | TELEPORT v${app_ver.TP_SERVER_VER} | &copy;2015 - 2017 <a href="http://teleport.eomsoft.net/" target="_blank">触维软件</a>,保留所有权利。</p>
<p>TELEPORT v${app_ver.TP_SERVER_VER} | &copy;2015 - 2018 <a href="http://www.tp4a.com/" target="_blank">TP4A</a>,保留所有权利。</p>
</div>
</nav>
</div>

View File

@ -122,25 +122,36 @@ class TPBaseHandler(tornado.web.RequestHandler):
def get_current_user(self):
return self._user
def check_privilege(self, require_privilege):
def check_privilege(self, require_privilege, need_process=True):
if not self._user['_is_login']:
if self._mode == self.MODE_HTTP:
self.redirect('/auth/login?ref={}'.format(quote(self.request.uri)))
if need_process:
self.redirect('/auth/login?ref={}'.format(quote(self.request.uri)))
elif self._mode == self.MODE_JSON:
self.write_json(TPE_NEED_LOGIN)
if need_process:
self.write_json(TPE_NEED_LOGIN)
else:
raise RuntimeError("invalid request mode.")
if need_process:
raise RuntimeError("invalid request mode.")
else:
return TPE_HTTP_METHOD
return TPE_NEED_LOGIN
else:
if (self._user['privilege'] & require_privilege) != 0:
return TPE_OK
if self._mode == self.MODE_HTTP:
self.show_error_page(TPE_PRIVILEGE)
if need_process:
self.show_error_page(TPE_PRIVILEGE)
elif self._mode == self.MODE_JSON:
self.write_json(TPE_PRIVILEGE)
if need_process:
self.write_json(TPE_PRIVILEGE)
else:
raise RuntimeError("invalid request mode.")
if need_process:
raise RuntimeError("invalid request mode.")
else:
return TPE_HTTP_METHOD
return TPE_PRIVILEGE

View File

@ -160,24 +160,31 @@ class DoImportHandler(TPBaseHandler):
def post(self):
"""
csv导入规则
每一行的数据格式 操作系统类型,IP,名称,路由IP,路由端口,资产编号,协议类型,账号,认证类型,密码或私钥,账号提示,密码提示,分组,描述
每一行的数据格式 主机IP,操作系统类型,名称,路由IP,路由端口,资产编号,账号,协议类型,协议端口,认证类型,密码或私钥,账号提示,密码提示,分组,描述
在导入时
0. #”作为行注释。
1. 首先必须是主机数据随后可以跟多个账号数据直到遇到下一个主机数据行之前账号会与上一个主机关联
2. 一个主机或账号属于多个组可以用|将组分隔如果某个组并不存在则会创建这个组
3. 空行跳过数据格式不正确的跳过
"""
ret = self.check_privilege(TP_PRIVILEGE_ASSET_CREATE | TP_PRIVILEGE_ASSET_GROUP | TP_PRIVILEGE_USER_CREATE | TP_PRIVILEGE_USER_GROUP)
if ret != TPE_OK:
return
ret = dict()
ret['code'] = TPE_OK
ret['message'] = ''
rv = self.check_privilege(TP_PRIVILEGE_ASSET_CREATE | TP_PRIVILEGE_ASSET_GROUP | TP_PRIVILEGE_USER_CREATE | TP_PRIVILEGE_USER_GROUP, need_process=False)
if rv != TPE_OK:
ret['code'] = rv
if rv == TPE_NEED_LOGIN:
ret['message'] = '需要登录!'
elif rv == TPE_PRIVILEGE:
ret['message'] = '权限不足!'
else:
ret['message'] = '未知错误!'
return self.write(json.dumps(ret).encode('utf8'))
# success = list()
failed = list()
group_failed = list()
ret = dict()
ret['code'] = TPE_OK
ret['message'] = ''
csv_filename = ''
try:

View File

@ -310,17 +310,26 @@ class DoImportHandler(TPBaseHandler):
2. 一个用户属于多个组可以用|将组分隔如果某个组并不存在则会创建这个组
3. 空行跳过数据格式不正确的跳过
"""
ret = self.check_privilege(TP_PRIVILEGE_USER_CREATE | TP_PRIVILEGE_USER_GROUP)
if ret != TPE_OK:
return
success = list()
failed = list()
group_failed = list()
ret = dict()
ret['code'] = TPE_OK
ret['message'] = ''
rv = self.check_privilege(TP_PRIVILEGE_USER_CREATE | TP_PRIVILEGE_USER_GROUP, need_process=False)
if rv != TPE_OK:
ret['code'] = rv
ret['code'] = rv
if rv == TPE_NEED_LOGIN:
ret['message'] = '需要登录!'
elif rv == TPE_PRIVILEGE:
ret['message'] = '权限不足!'
else:
ret['message'] = '未知错误!'
return self.write(json.dumps(ret).encode('utf8'))
success = list()
failed = list()
group_failed = list()
csv_filename = ''
try: