Revision 73119f8a
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 <qa@vigilo-dev.si.c-s.fr>
Reviewed-by: Vincent QUEMENER <vincent.quemener@c-s.fr>
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