Project

General

Profile

Revision 73119f8a

ID73119f8a8de306681308bdbbb1382e919cb49417
Parent 4e75dfb9
Child 32b2c767

Added by Francois POIROTTE over 10 years ago

Personnalisation des managers.

Permet de personnaliser le nom (avec la possibilité d'en définir
plusieurs) des groupes d'utilisateurs privilégiés.

Ce changement évite d'imposer un nom de groupe d'utilisateurs
particulier contenant les administrateurs du parc. Il est en particulier
utile lorsque l'authentification est réalisée via une source externe
indépendante de Vigilo (ex: annuaire LDAP).

Change-Id: I5ec1514a488d946ba53c661e840ff21e23eb63af
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/1331
Tested-by: Build system <>
Reviewed-by: Vincent QUEMENER <>

View differences:

vigiboard/controllers/root.py
35 35
from sqlalchemy.sql import func
36 36
from sqlalchemy.orm import aliased
37 37
from sqlalchemy.sql.expression import or_
38
from repoze.what.predicates import Any, All, in_group, \
39
                                    has_permission, not_anonymous, \
40
                                    NotAuthorizedError
38
from repoze.what.predicates import Any, All, NotAuthorizedError, \
39
                                    has_permission, not_anonymous
41 40
from formencode import schema
42 41

  
43 42
from vigilo.models.session import DBSession
......
95 94
    # ou appartenir au groupe "managers" pour accéder à VigiBoard.
96 95
    access_restriction = All(
97 96
        not_anonymous(msg=l_("You need to be authenticated")),
98
        Any(in_group('managers'),
97
        Any(config.is_manager,
99 98
            has_permission('vigiboard-access'),
100 99
            msg=l_("You don't have access to VigiBoard"))
101 100
    )
......
578 577
    @require(
579 578
        All(
580 579
            not_anonymous(msg=l_("You need to be authenticated")),
581
            Any(in_group('managers'),
580
            Any(config.is_manager,
582 581
                has_permission('vigiboard-update'),
583 582
                msg=l_("You don't have write access to VigiBoard"))
584 583
        ))
......
642 641

  
643 642
        if ack == u'Forced':
644 643
            condition = Any(
645
                in_group('managers'),
644
                config.is_manager,
646 645
                has_permission('vigiboard-admin'),
647 646
                msg=l_("You don't have administrative access "
648 647
                        "to VigiBoard"))
......
816 815

  
817 816
        # Filtrage des évènements en fonction des permissions de
818 817
        # l'utilisateur (s'il n'appartient pas au groupe 'managers')
819
        is_manager = in_group('managers').is_met(request.environ)
820
        if not is_manager:
818
        if not config.is_manager.is_met(request.environ):
821 819
            user = get_current_user()
822 820

  
823 821
            events = events.join(
......
926 924

  
927 925
        # Si l'utilisateur n'appartient pas au groupe 'managers',
928 926
        # on filtre les résultats en fonction de ses permissions.
929
        is_manager = in_group('managers').is_met(request.environ)
930
        if not is_manager:
927
        if not config.is_manager.is_met(request.environ):
931 928
            user = get_current_user()
932 929
            GroupHierarchy_aliased = aliased(GroupHierarchy,
933 930
                name='GroupHierarchy_aliased')
......
1000 997
        # On filtre ces groupes racines afin de ne
1001 998
        # retourner que ceux auquels l'utilisateur a accès
1002 999
        user = get_current_user()
1003
        is_manager = in_group('managers').is_met(request.environ)
1004
        if not is_manager:
1005

  
1000
        if not config.is_manager.is_met(request.environ):
1006 1001
            root_groups = root_groups.join(
1007 1002
                (GroupHierarchy,
1008 1003
                    GroupHierarchy.idparent == SupItemGroup.idgroup),

Also available in: Unified diff