From 8d201a29ae7386e4395f50e13922225c1b639638 Mon Sep 17 00:00:00 2001 From: Patrick Jentsch <pjentsch@sfb1288inf-Laptop.fritz.box> Date: Wed, 20 May 2020 09:36:59 +0200 Subject: [PATCH] Proper socketio_login/admin_required decorators --- app/decorators.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/decorators.py b/app/decorators.py index 0a361424..5fa664e0 100644 --- a/app/decorators.py +++ b/app/decorators.py @@ -1,4 +1,4 @@ -from flask import abort, current_app +from flask import abort, current_app, request from flask_login import current_user from flask_socketio import disconnect from functools import wraps @@ -39,15 +39,17 @@ def socketio_admin_required(f): if current_user.is_administrator: return f(*args, **kwargs) else: - disconnect() + response = {'code': 401, 'desc': 'Unauthorized'} + socketio.emit(request.event['message'], response, room=request.sid) return wrapped def socketio_login_required(f): @wraps(f) def wrapped(*args, **kwargs): - if not current_user.is_authenticated: - disconnect() - else: + if current_user.is_authenticated: return f(*args, **kwargs) + else: + response = {'code': 401, 'desc': 'Unauthorized'} + socketio.emit(request.event['message'], response, room=request.sid) return wrapped -- GitLab