diff --git a/apps/authentication/backends/openid/models.py b/apps/authentication/backends/openid/models.py index 863aafd6a..4a43c06fa 100644 --- a/apps/authentication/backends/openid/models.py +++ b/apps/authentication/backends/openid/models.py @@ -160,7 +160,8 @@ class Client(object): defaults={ 'email': userinfo.get('email', ''), 'first_name': userinfo.get('given_name', ''), - 'last_name': userinfo.get('family_name', '') + 'last_name': userinfo.get('family_name', ''), + 'name': userinfo.get('name', '') } ) oidt_profile = OpenIDTokenProfile( diff --git a/apps/terminal/api/terminal.py b/apps/terminal/api/terminal.py index 3aed8537e..b0f6b6bca 100644 --- a/apps/terminal/api/terminal.py +++ b/apps/terminal/api/terminal.py @@ -111,6 +111,11 @@ class StatusViewSet(viewsets.ModelViewSet): def handle_sessions(self): sessions_id = self.request.data.get('sessions', []) + # guacamole 上报的 session 是字符串 + # "[53cd3e47-210f-41d8-b3c6-a184f3, 53cd3e47-210f-41d8-b3c6-a184f4]" + if isinstance(sessions_id, str): + sessions_id = sessions_id[1:-1].split(',') + sessions_id = [sid.strip() for sid in sessions_id if sid.strip()] Session.set_sessions_active(sessions_id) def get_queryset(self):