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 @@