diff --git a/jlog/urls.py b/jlog/urls.py index deb2902b4..e9a3063bd 100644 --- a/jlog/urls.py +++ b/jlog/urls.py @@ -9,5 +9,5 @@ urlpatterns = patterns('', url(r'^log_kill/', log_kill), url(r'^record/$', log_record), url(r'^web_terminal/$', web_terminal), - url(r'^get_role_name/$', get_role_name), + ) \ No newline at end of file diff --git a/jlog/views.py b/jlog/views.py index 729ececc7..462fdf1e8 100644 --- a/jlog/views.py +++ b/jlog/views.py @@ -107,16 +107,6 @@ def log_record(request): return HttpResponse('无日志记录!') -@require_role('user') -def get_role_name(request): - asset_id = request.GET.get('id', 9999) - asset = get_object(Asset, id=asset_id) - if asset: - role = user_have_perm(request.user, asset=asset) - return HttpResponse(','.join([i.name for i in role])) - return HttpResponse('error') - - @require_role('user') def web_terminal(request): asset_id = request.GET.get('id') diff --git a/jperm/perm_api.py b/jperm/perm_api.py index ca8645854..f64f32189 100644 --- a/jperm/perm_api.py +++ b/jperm/perm_api.py @@ -300,6 +300,21 @@ def get_role_push_host(role): asset_no_push = set(asset_all) - set(asset_pushed.keys()) return asset_pushed, asset_no_push + +@require_role('user') +def perm_role_get(request): + asset_id = request.GET.get('id', 0) + if asset_id: + asset = get_object(Asset, id=asset_id) + if asset: + role = user_have_perm(request.user, asset=asset) + return HttpResponse(','.join([i.name for i in role])) + else: + roles = get_group_user_perm(request.user).get('role').keys() + return HttpResponse(','.join(i.name for i in roles)) + return HttpResponse('error') + + if __name__ == "__main__": print get_role_info(1) diff --git a/jperm/urls.py b/jperm/urls.py index 456cf5c87..0d26aad45 100644 --- a/jperm/urls.py +++ b/jperm/urls.py @@ -14,6 +14,7 @@ urlpatterns = patterns('jperm.views', (r'^role/perm_role_edit/$', perm_role_edit), (r'^role/push/$', perm_role_push), (r'^role/recycle/$', perm_role_recycle), + (r'^role/get/$', perm_role_get), (r'^sudo/$', perm_sudo_list), (r'^sudo/perm_sudo_add/$', perm_sudo_add), (r'^sudo/perm_sudo_delete/$', perm_sudo_delete), diff --git a/jumpserver/views.py b/jumpserver/views.py index 5eb0cac80..82bef8436 100644 --- a/jumpserver/views.py +++ b/jumpserver/views.py @@ -362,6 +362,6 @@ def download(request): @login_required(login_url='/login') def exec_cmd(request): - role_name = request.GET.get('role_name') - web_terminal_uri = 'ws://%s/exec?role=%s' % (WEB_SOCKET_HOST, role_name) + role = request.GET.get('role') + web_terminal_uri = 'ws://%s/exec?role=%s' % (WEB_SOCKET_HOST, role) return my_render('exec_cmd.html', locals(), request) diff --git a/run_websocket.py b/run_websocket.py index 0bdd609cf..1d0b44f07 100644 --- a/run_websocket.py +++ b/run_websocket.py @@ -229,7 +229,8 @@ class ExecHandler(tornado.websocket.WebSocketHandler): @require_auth('user') def open(self): logger.debug('Websocket: Open exec request') - role_name = self.get_argument('role', 'dev') + role_name = self.get_argument('role', 'sb') + logger.debug('Web执行命令: 请求角色 %s' % role_name) self.role = get_object(PermRole, name=role_name) self.perm = get_group_user_perm(self.user) roles = self.perm.get('role').keys() @@ -262,7 +263,7 @@ class ExecHandler(tornado.websocket.WebSocketHandler): header = "[ %s => %s]\n" % (host, 'failed') self.write_message(header) self.write_message(output) - self.write_message('\n\n') + self.write_message('\n~o~ Task finished ~o~\n') class WebTerminalHandler(tornado.websocket.WebSocketHandler): diff --git a/templates/exec_cmd.html b/templates/exec_cmd.html index 6b9753c97..76c19c214 100644 --- a/templates/exec_cmd.html +++ b/templates/exec_cmd.html @@ -23,7 +23,7 @@