Revision 8089d65a
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>
deployment/settings.ini.in | ||
---|---|---|
72 | 72 |
; de l'authentification. |
73 | 73 |
auth.config = %(here)s/who.ini |
74 | 74 |
|
75 |
; Liste des noms des groupes d'utilisateurs privilégiés, |
|
76 |
; séparés par des virgules. |
|
77 |
; Par défaut : "managers" |
|
78 |
admin_groups = managers |
|
79 |
|
|
75 | 80 |
; |
76 | 81 |
; 3 - Configuration de l'interface. |
77 | 82 |
; |
development.ini | ||
---|---|---|
47 | 47 |
app_port.vigirrd = 8084 |
48 | 48 |
app_port.nagios = 80 |
49 | 49 |
|
50 |
# Délai de rafraîchissement (en secondes)
|
|
50 |
; Délai de rafraîchissement (en secondes)
|
|
51 | 51 |
refresh_delay = 30 |
52 | 52 |
|
53 |
; Liste des noms des groupes d'utilisateurs privilégiés, |
|
54 |
; séparés par des virgules. |
|
55 |
; Par défaut : "managers" |
|
56 |
admin_groups = managers |
|
57 |
|
|
53 | 58 |
full_stack = true |
54 | 59 |
cache_dir = %(here)s/data |
55 | 60 |
beaker.session.key = vigigraph |
vigigraph/controllers/rpc.py | ||
---|---|---|
68 | 68 |
allow_only = All( |
69 | 69 |
not_anonymous(msg=l_("You need to be authenticated")), |
70 | 70 |
Any( |
71 |
in_group('managers'),
|
|
71 |
config.is_manager,
|
|
72 | 72 |
has_permission('vigigraph-access', |
73 | 73 |
msg=l_("You don't have access to VigiGraph")), |
74 | 74 |
), |
... | ... | |
215 | 215 |
|
216 | 216 |
# Les managers ont accès à tout. |
217 | 217 |
# Les autres ont un accès restreint. |
218 |
is_manager = in_group('managers').is_met(request.environ) |
|
219 |
if not is_manager: |
|
218 |
if not config.is_manager.is_met(request.environ): |
|
220 | 219 |
supitemgroups = [sig[0] for sig in user.supitemgroups() if sig[1]] |
221 | 220 |
# pylint: disable-msg=E1103 |
222 | 221 |
items = items.join( |
... | ... | |
398 | 397 |
presets=self.presets, graphs=[]) |
399 | 398 |
|
400 | 399 |
# Vérification des permissions de l'utilisateur sur l'hôte. |
401 |
is_manager = in_group('managers').is_met(request.environ) |
|
402 |
if not is_manager: |
|
400 |
if not config.is_manager.is_met(request.environ): |
|
403 | 401 |
# Récupération des groupes auxquels l'utilisateur a accès. |
404 | 402 |
supitemgroups = [sig[0] for sig in user.supitemgroups() if sig[1]] |
405 | 403 |
|
... | ... | |
479 | 477 |
|
480 | 478 |
# Les managers ont accès à tout. |
481 | 479 |
# Les autres ont un accès restreint. |
482 |
is_manager = in_group('managers').is_met(request.environ) |
|
483 |
if not is_manager: |
|
480 |
if not config.is_manager.is_met(request.environ): |
|
484 | 481 |
supitemgroups = [sig[0] for sig in user.supitemgroups() if sig[1]] |
485 | 482 |
hosts = hosts.join( |
486 | 483 |
(GroupHierarchy, GroupHierarchy.idchild == \ |
... | ... | |
523 | 520 |
# On vérifie si le groupe parent fait partie des |
524 | 521 |
# groupes auxquel l'utilisateur a accès, et on |
525 | 522 |
# retourne une liste vide dans le cas contraire |
526 |
is_manager = in_group('managers').is_met(request.environ)
|
|
523 |
is_manager = config.is_manager.is_met(request.environ)
|
|
527 | 524 |
if not is_manager: |
528 | 525 |
direct_access = False |
529 | 526 |
user = get_current_user() |
... | ... | |
800 | 797 |
# On filtre ces groupes racines afin de ne |
801 | 798 |
# retourner que ceux auquels l'utilisateur a accès |
802 | 799 |
user = get_current_user() |
803 |
is_manager = in_group('managers').is_met(request.environ) |
|
804 |
if not is_manager: |
|
800 |
if not config.is_manager.is_met(request.environ): |
|
805 | 801 |
user_groups = [ug[0] for ug in user.supitemgroups()] |
806 | 802 |
root_groups = root_groups.filter( |
807 | 803 |
SupItemGroup.idgroup.in_(user_groups)) |
Also available in: Unified diff