Projet

Général

Profil

0008-manager-handle-authentication-level-transition.patch

Valentin Deniaud, 04 avril 2019 17:07

Télécharger (1,8 ko)

Voir les différences:

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(-)
src/authentic2/manager/urls.py
4 4
from django.contrib.auth.decorators import login_required
5 5
from django.utils.functional import lazy
6 6
from . import views, role_views, ou_views, user_views, service_views
7
from ..decorators import required
7
from authentic2.decorators import required, check_auth_level
8 8
from authentic2 import utils
9 9

  
10 10

  
......
13 13

  
14 14

  
15 15
urlpatterns = required(
16
    manager_login_required, [
16
    (manager_login_required, check_auth_level), [
17 17
        # homepage
18 18
        url(r'^$', views.homepage, name='a2-manager-homepage'),
19 19

  
20
-