Project

General

Profile

Revision ddbaec88

IDddbaec886274cfe4c6b7eb09b14f5baa774e0fdf
Parent 98760d1b
Child fc43af7e

Added by Francois POIROTTE over 12 years ago

Activation du cache des permissions (#577)

Modifie l'ordre des middlewares WSGI afin que les couches apportées par
Beaker (gestion du cache et gestion des sessions) soient disponibles
depuis les couches d'authentification/autorisations (repoze.who et
repoze.what).

Ceci permet d'activer réellement le cache des permissions au niveau du
plugin Kerberos (auparavant, la fonctionnalité était présent, mais
inutilisable car Beaker ne se trouvait pas dans la pile de couches).

Ce changeset remplace également le plugin d'authentification Kerberos
pour supprimer les méthodes responsables de l'identification et de
l'authentification de l'utilisateur par une unique méthode d'ajout de
méta-données (mdprovider).
De fait, le plugin sera correctement appelé avec le nouveau code pour la
pile d'authentification (afin de créer l'utilisateur dans Vigilo
correspondant à l'utilisateur externe).
Le plugin a été renommé (nom plus explicite/réaliste) et déplacé à cet
endroit : `vigilo.turbogears.repoze.plugins.mdldapsync`.
Ceci introduit une dépendance sur python-ldap dans vigilo.turbogears.

Ce changement centralise tout ce qui concerne repoze.wh(o|at) dans
vigilo.turbogears.repoze.
Le classifier a été modifié pour identifier spécifiquement les requêtes
authentifiée par un mécanisme externe (ex: Kerberos).
Les plugins ont vu leur nom changer radicalement et se trouvent
désormais chacun dans un fichier séparé (sqlauth, mduser, mdgroups).

Un nouveau module (d'identification) pour repoze.who a été ajouté dans
`vigilo.turbogears.repoze.plugins.externalid`. Ce module permet de
pré-authentifier un utilisateur à partir du contenu d'une session
Beaker. Il sera utilisé avec `mdldapsync` qui mémorise déjà l'identité
d'un utilisateur authentifié via un mécanisme externe dans la session
Beaker.

Les fichiers .ini des différentes IHM ont été mis à jour en conséquence.

Les méthodes liées à l'authentification dans les contrôleurs !TurboGears
ont été mises en commun dans `vigilo.turbogears.controllers.auth`.

Refs: #577.
Change-Id: Ia2d600622fd623e1a4474a4ea24fef3b3b503c12
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/377
Tested-by: Build system <>
Reviewed-by: Aurelien BOMPARD <>

View differences:

vigiboard/controllers/root.py
48 48
from vigilo.models.tables.secondary_tables import EVENTSAGGREGATE_TABLE, \
49 49
        USER_GROUP_TABLE, SUPITEM_GROUP_TABLE
50 50

  
51
from vigilo.turbogears.controllers.auth import AuthController
52
from vigilo.turbogears.controllers.error import ErrorController
51 53
from vigilo.turbogears.controllers.autocomplete import AutoCompleteController
52 54
from vigilo.turbogears.controllers.proxy import ProxyController
53 55
from vigilo.turbogears.controllers.api.root import ApiRootController
54 56
from vigilo.turbogears.helpers import get_current_user
55 57

  
56 58
from vigiboard.controllers.vigiboardrequest import VigiboardRequest
57
from vigiboard.controllers.vigiboard_controller import VigiboardRootController
58 59
from vigiboard.controllers.feeds import FeedsController
59 60

  
60 61
from vigiboard.widgets.edit_event import edit_event_status_options, \
......
68 69
           'date_to_timestamp')
69 70

  
70 71
# pylint: disable-msg=R0201
71
class RootController(VigiboardRootController):
72
class RootController(AuthController):
72 73
    """
73 74
    Le controller général de vigiboard
74 75
    """
76
    error = ErrorController()
75 77
    autocomplete = AutoCompleteController()
76 78
    nagios = ProxyController('nagios', '/nagios/',
77 79
        not_anonymous(l_('You need to be authenticated')))
......
621 623
                                    'address': request.remote_addr,
622 624
                                    'idevent': event.idcause,
623 625
                                })
624
 
626

  
625 627
                history = EventHistory(
626 628
                        type_action=u"Acknowledgement change state",
627 629
                        idevent=event.idcause,

Also available in: Unified diff