From e977b58ecadd39628007130477e8ee81722df510 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 4 Apr 2019 11:55:34 +0200 Subject: [PATCH 08/13] manager: handle authentication level transition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Et hop, 0 code en plus et 0 modifs dans la vue, je suis plutôt content de cette solution. Par contre pour l'instant on ignore un problème potentiel : il y a des checks de type user.has_perm dans des templates (par ex dans tables.py), et comme elles sont rendered dans un autre thread, l'exception ne remontera pas jusqu'à notre décorateur et ça va planter. Du coup il faudrait s'assurer que ça ne peut jamais arriver (que chaque has_perm au niveau template est protégé par un has_perm dans la vue), et sinon rajouter du code qui rattrape les exceptions en affichant un bouton "cliquer ici pour la montée d'auth". --- src/authentic2/manager/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/authentic2/manager/urls.py b/src/authentic2/manager/urls.py index c0646d5d..29586cc6 100644 --- a/src/authentic2/manager/urls.py +++ b/src/authentic2/manager/urls.py @@ -4,7 +4,7 @@ from django.views.i18n import javascript_catalog from django.contrib.auth.decorators import login_required from django.utils.functional import lazy from . import views, role_views, ou_views, user_views, service_views -from ..decorators import required +from authentic2.decorators import required, check_auth_level from authentic2 import utils @@ -13,7 +13,7 @@ def manager_login_required(func): urlpatterns = required( - manager_login_required, [ + (manager_login_required, check_auth_level), [ # homepage url(r'^$', views.homepage, name='a2-manager-homepage'), -- 2.20.1