1
1
from channels .generic .websocket import WebsocketConsumer
2
2
from django .conf import settings
3
3
from server .models import RemoteUserBindHost
4
+ from user .models import User
4
5
from django .db .models import Q
5
6
from asgiref .sync import async_to_sync
6
7
from util .tool import gen_rand_char
20
21
21
22
22
23
def get_hosts (issuperuser , ids , username ):
23
- if issuperuser :
24
+ if issuperuser and username == 'admin' :
24
25
return RemoteUserBindHost .objects .filter (
25
26
Q (enabled = True ),
26
27
Q (id__in = ids .split (',' )),
@@ -138,7 +139,7 @@ def receive(self, text_data=None, bytes_data=None):
138
139
user = self .session .get ('username' ),
139
140
user_agent = self .user_agent ,
140
141
client = self .client ,
141
- issuperuser = self .session . get ( 'issuperuser' , False ) ,
142
+ issuperuser = True if '登陆后su跳转超级用户' in self .session [ settings . INIT_PERMISSION ][ 'titles' ] else False ,
142
143
) # 执行
143
144
144
145
else :
@@ -270,7 +271,7 @@ def receive(self, text_data=None, bytes_data=None):
270
271
user = self .session .get ('username' ),
271
272
user_agent = self .user_agent ,
272
273
client = self .client ,
273
- issuperuser = self .session . get ( 'issuperuser' , False ) ,
274
+ issuperuser = True if '登陆后su跳转超级用户' in self .session [ settings . INIT_PERMISSION ][ 'titles' ] else False ,
274
275
) # 执行
275
276
276
277
else :
@@ -410,7 +411,7 @@ def receive(self, text_data=None, bytes_data=None):
410
411
user = self .session .get ('username' ),
411
412
user_agent = self .user_agent ,
412
413
client = self .client ,
413
- issuperuser = self .session . get ( 'issuperuser' , False ) ,
414
+ issuperuser = True if '登陆后su跳转超级用户' in self .session [ settings . INIT_PERMISSION ][ 'titles' ] else False ,
414
415
) # 执行
415
416
else :
416
417
self .message ['status' ] = 1
@@ -529,6 +530,8 @@ def receive(self, text_data=None, bytes_data=None):
529
530
hostinfo ['port' ] = host .port
530
531
hostinfo ['username' ] = host .remote_user .username
531
532
hostinfo ['password' ] = host .remote_user .password
533
+ user = User .objects .get (id = int (self .session .get ('userid' )))
534
+ hostinfo ['groups' ] = [x .group_name for x in host .host_group .filter (user = user )]
532
535
if host .remote_user .enabled :
533
536
hostinfo ['superusername' ] = host .remote_user .superusername
534
537
hostinfo ['superpassword' ] = host .remote_user .superpassword
@@ -541,7 +544,7 @@ def receive(self, text_data=None, bytes_data=None):
541
544
user = self .session .get ('username' ),
542
545
user_agent = self .user_agent ,
543
546
client = self .client ,
544
- issuperuser = self .session . get ( 'issuperuser' , False ) ,
547
+ issuperuser = True if '登陆后su跳转超级用户' in self .session [ settings . INIT_PERMISSION ][ 'titles' ] else False ,
545
548
) # 执行
546
549
else :
547
550
self .message ['status' ] = 1
@@ -672,7 +675,7 @@ def receive(self, text_data=None, bytes_data=None):
672
675
user = self .session .get ('username' ),
673
676
user_agent = self .user_agent ,
674
677
client = self .client ,
675
- issuperuser = self .session . get ( 'issuperuser' , False ) ,
678
+ issuperuser = True if '登陆后su跳转超级用户' in self .session [ settings . INIT_PERMISSION ][ 'titles' ] else False ,
676
679
) # 执行
677
680
else :
678
681
self .message ['status' ] = 1
0 commit comments