1
0
Fork 0
mirror of https://github.com/fastogt/fastocloud_admin.git synced 2025-03-09 23:38:52 +00:00

Sources UP

This commit is contained in:
topilski 2019-09-28 11:28:56 -04:00
parent a1c96fecf2
commit 728db506af

View file

@ -78,9 +78,9 @@ class SubscribersServiceManager(ServiceManager, IClientHandler):
self.__close_subscriber(client) self.__close_subscriber(client)
def process_response(self, client, req: Request, resp: Response): def process_response(self, client, req: Request, resp: Response):
if req.method == Commands.SERVER_PING_COMMAND: if req.method == Commands.SERVER_PING:
self._handle_server_ping_command(client, resp) self._handle_server_ping_command(client, resp)
elif req.method == Commands.SERVER_GET_CLIENT_INFO_COMMAND: elif req.method == Commands.SERVER_GET_CLIENT_INFO:
self._handle_server_get_client_info(client, resp) self._handle_server_get_client_info(client, resp)
def process_request(self, client, req: Request): def process_request(self, client, req: Request):
@ -88,15 +88,17 @@ class SubscribersServiceManager(ServiceManager, IClientHandler):
return return
result = False result = False
if req.method == Commands.ACTIVATE_COMMAND: if req.method == Commands.CLIENT_ACTIVATE_DEVICE:
result = self._handle_activate_subscriber(client, req.id, req.params) result = self._handle_activate_device(client, req.id, req.params)
elif req.method == Commands.GET_SERVER_INFO_COMMAND: elif req.method == Commands.CLIENT_LOGIN:
result = self._handle_login(client, req.id, req.params)
elif req.method == Commands.CLIENT_GET_SERVER_INFO:
result = self._handle_get_server_info(client, req.id, req.params) result = self._handle_get_server_info(client, req.id, req.params)
elif req.method == Commands.CLIENT_PING_COMMAND: elif req.method == Commands.CLIENT_PING:
result = self._handle_client_ping(client, req.id, req.params) result = self._handle_client_ping(client, req.id, req.params)
elif req.method == Commands.GET_CHANNELS: elif req.method == Commands.CLIENT_GET_CHANNELS:
result = self._handle_get_channels(client, req.id, req.params) result = self._handle_get_channels(client, req.id, req.params)
elif req.method == Commands.GET_RUNTIME_CHANNEL_INFO: elif req.method == Commands.CLIENT_GET_RUNTIME_CHANNEL_INFO:
result = self._handle_get_runtime_channel_info(client, req.id, req.params) result = self._handle_get_runtime_channel_info(client, req.id, req.params)
else: else:
pass pass
@ -104,9 +106,6 @@ class SubscribersServiceManager(ServiceManager, IClientHandler):
if not result: if not result:
self.__close_subscriber(client) self.__close_subscriber(client)
def on_client_state_changed(self, client, status: ClientStatus):
pass
def get_watchers_by_stream_id(self, sid: str): def get_watchers_by_stream_id(self, sid: str):
total = 0 total = 0
for user in self._subscribers: for user in self._subscribers:
@ -130,13 +129,44 @@ class SubscribersServiceManager(ServiceManager, IClientHandler):
# protected # protected
def on_client_state_changed(self, client, status: ClientStatus):
pass
def _handle_server_ping_command(self, client, resp: Response): def _handle_server_ping_command(self, client, resp: Response):
pass pass
def _handle_server_get_client_info(self, client, resp: Response): def _handle_server_get_client_info(self, client, resp: Response):
pass pass
def _handle_activate_subscriber(self, client, cid: str, params: dict) -> bool: def _handle_activate_device(self, client, cid: str, params: dict) -> bool:
login = params[Subscriber.EMAIL_FIELD]
password_hash = params[Subscriber.PASSWORD_FIELD]
check_user = Subscriber.objects(email=login, class_check=False).first()
if not check_user:
client.login_fail(cid, 'User not found')
return False
if check_user.status == Subscriber.Status.NOT_ACTIVE:
client.login_fail(cid, 'User not active')
return False
if check_user.status == Subscriber.Status.BANNED:
client.login_fail(cid, 'Banned user')
return False
if check_user[Subscriber.PASSWORD_FIELD] != password_hash:
client.login_fail(cid, 'User invalid password')
return False
result = client.login_success(cid, )
if not result:
return False
client.info = check_user
self.__activate_subscriber(client)
return True
def _handle_login(self, client, cid: str, params: dict) -> bool:
login = params[Subscriber.EMAIL_FIELD] login = params[Subscriber.EMAIL_FIELD]
password_hash = params[Subscriber.PASSWORD_FIELD] password_hash = params[Subscriber.PASSWORD_FIELD]
device_id = params['device_id'] device_id = params['device_id']
@ -174,7 +204,7 @@ class SubscribersServiceManager(ServiceManager, IClientHandler):
return False return False
client.info = check_user client.info = check_user
client.device = found_device client.device = found_device
self.__activate_subscriber(client) self.__login_subscriber(client)
return True return True
def _handle_get_server_info(self, client, cid: str, params: dict) -> bool: def _handle_get_server_info(self, client, cid: str, params: dict) -> bool:
@ -220,6 +250,9 @@ class SubscribersServiceManager(ServiceManager, IClientHandler):
logging.info('New connection address: {0}, connections: {1}'.format(subs.address(), len(self._subscribers))) logging.info('New connection address: {0}, connections: {1}'.format(subs.address(), len(self._subscribers)))
def __activate_subscriber(self, subs: SubscriberConnection): def __activate_subscriber(self, subs: SubscriberConnection):
logging.info('Active registered user: {0}, connections: {1}'.format(subs.info.email, len(self._subscribers)))
def __login_subscriber(self, subs: SubscriberConnection):
logging.info('Welcome registered user: {0}, connections: {1}'.format(subs.info.email, len(self._subscribers))) logging.info('Welcome registered user: {0}, connections: {1}'.format(subs.info.email, len(self._subscribers)))
def __remove_subscriber(self, subs: SubscriberConnection): def __remove_subscriber(self, subs: SubscriberConnection):