From ad08f2c355ba9bcb822e6729f9fe2a77931404af Mon Sep 17 00:00:00 2001 From: vapao Date: Mon, 25 May 2020 10:33:21 +0800 Subject: [PATCH] =?UTF-8?q?U=20=E6=94=B9=E8=BF=9Bwebssh=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spug_api/consumer/consumers.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spug_api/consumer/consumers.py b/spug_api/consumer/consumers.py index 1b49dde..fc07321 100644 --- a/spug_api/consumer/consumers.py +++ b/spug_api/consumer/consumers.py @@ -4,9 +4,11 @@ from channels.generic.websocket import WebsocketConsumer from django_redis import get_redis_connection from apps.setting.utils import AppSetting +from apps.account.models import User from apps.host.models import Host from threading import Thread import json +import time class ExecConsumer(WebsocketConsumer): @@ -69,7 +71,14 @@ class SSHConsumer(WebsocketConsumer): # print('Connection close') def connect(self): - self.accept() + user = User.objects.filter(access_token=self.token).first() + if user and user.token_expired >= time.time() and user.is_active: + self.accept() + self._init() + else: + self.close() + + def _init(self): self.send(bytes_data=b'Connecting ...\r\n') host = Host.objects.filter(pk=self.id).first() if not host: