From 1ca173894bda0ab517385e1071d7dbe4fc5d8c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 14 Jan 2023 11:43:51 +0100 Subject: [PATCH] Use standard functools.wraps instead of wrapt --- trytond/setup.py | 1 - trytond/trytond/wsgi.py | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/trytond/setup.py b/trytond/setup.py index 4c5a3e0ad4..b457f08089 100755 --- a/trytond/setup.py +++ b/trytond/setup.py @@ -141,7 +141,6 @@ setup(name=name, 'polib', 'python-sql >= 1.3', 'werkzeug', - 'wrapt', 'passlib >= 1.7.0', 'pytz;python_version<"3.9"', ], diff --git a/trytond/trytond/wsgi.py b/trytond/trytond/wsgi.py index e898de22a3..2c6f69b2ad 100644 --- a/trytond/trytond/wsgi.py +++ b/trytond/trytond/wsgi.py @@ -8,6 +8,7 @@ import posixpath import sys import traceback import urllib.parse +from functools import wraps from werkzeug.routing import BaseConverter, Map, Rule @@ -25,8 +26,6 @@ try: except ImportError: from werkzeug.wsgi import SharedDataMiddleware -import wrapt - from trytond.config import config from trytond.protocols.jsonrpc import JSONProtocol from trytond.protocols.wrappers import ( @@ -69,17 +68,18 @@ class TrytondWSGI(object): self.error_handlers.append(handler) return handler - @wrapt.decorator - def auth_required(self, wrapped, instance, args, kwargs): - request = args[0] - if request.user_id: - return wrapped(*args, **kwargs) - else: - headers = {} - if request.headers.get('X-Requested-With') != 'XMLHttpRequest': - headers['WWW-Authenticate'] = 'Basic realm="Tryton"' - response = Response(None, http.client.UNAUTHORIZED, headers) - abort(http.client.UNAUTHORIZED, response=response) + def auth_required(self, func): + @wraps(func) + def wrapper(request, *args, **kwargs): + if request.user_id: + return func(request, *args, **kwargs) + else: + headers = {} + if request.headers.get('X-Requested-With') != 'XMLHttpRequest': + headers['WWW-Authenticate'] = 'Basic realm="Tryton"' + response = Response(None, http.client.UNAUTHORIZED, headers) + abort(http.client.UNAUTHORIZED, response=response) + return wrapper def check_request_size(self, request, size=None): if request.method not in {'POST', 'PUT', 'PATCH'}: