Revision ea0e5dfb
Ajout du proxy pour Nagios (pour pouvoir l'utiliser depuis les liens d'un événement).
Ajout d'une méthode get_groups() qui retournera les SupItemGroup dans le futur formulaire de recherche (WIP).
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@3553 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/root.py | ||
---|---|---|
22 | 22 |
from vigilo.models.tables import Event, EventHistory, CorrEvent, Host, \ |
23 | 23 |
SupItem, SupItemGroup, LowLevelService, \ |
24 | 24 |
StateName |
25 |
from vigilo.models.tables.grouphierarchy import GroupHierarchy |
|
25 | 26 |
from vigilo.models.functions import sql_escape_like |
26 | 27 |
from vigilo.models.tables.secondary_tables import EVENTSAGGREGATE_TABLE |
27 | 28 |
|
28 | 29 |
from vigilo.turbogears.controllers.autocomplete import AutoCompleteController |
30 |
from vigilo.turbogears.controllers.proxy import ProxyController |
|
29 | 31 |
from vigilo.turbogears.helpers import get_current_user |
30 | 32 |
|
31 | 33 |
from vigiboard.controllers.vigiboardrequest import VigiboardRequest |
... | ... | |
41 | 43 |
Le controller général de vigiboard |
42 | 44 |
""" |
43 | 45 |
autocomplete = AutoCompleteController() |
46 |
nagios = ProxyController('nagios', '/nagios/', |
|
47 |
not_anonymous(l_('You need to be authenticated'))) |
|
48 |
|
|
44 | 49 |
|
45 | 50 |
# Prédicat pour la restriction de l'accès aux interfaces. |
46 | 51 |
# L'utilisateur doit avoir la permission "vigiboard-access" |
... | ... | |
735 | 740 |
session.save() |
736 | 741 |
return dict() |
737 | 742 |
|
743 |
@require(access_restriction) |
|
744 |
@expose('json') |
|
745 |
def get_groups(self, idgroup=None): |
|
746 |
user = get_current_user() |
|
747 |
groups = DBSession.query( |
|
748 |
SupItemGroup.idgroup, |
|
749 |
SupItemGroup.name, |
|
750 |
).join( |
|
751 |
(GroupHierarchy, GroupHierarchy.idchild == \ |
|
752 |
SupItemGroup.idgroup), |
|
753 |
) |
|
754 |
|
|
755 |
is_manager = in_group('managers').is_met(request.environ) |
|
756 |
if not is_manager: |
|
757 |
user_groups = [ug[0] for ug in user.supitemgroups() if ug[1]] |
|
758 |
groups = groups.filter(SupItemGroup.idgroup.in_(user_groups)) |
|
759 |
|
|
760 |
# Cas des groupes racines (parents les plus élevés dans l'arbre). |
|
761 |
if idgroup: |
|
762 |
groups = groups.filter(GroupHierarchy.idparent == idgroup) |
|
763 |
else: |
|
764 |
groups = groups |
|
765 |
|
|
766 |
groups = [(g.idgroup, g.name) for g in groups.all()] |
|
767 |
return dict(groups=groups) |
|
768 |
|
|
738 | 769 |
def get_last_modification_timestamp(event_id_list, |
739 | 770 |
value_if_none=datetime.now()): |
740 | 771 |
""" |
Also available in: Unified diff