Project

General

Profile

Revision ea0e5dfb

IDea0e5dfb128f9952406d5d438f5b60013ef9d848
Parent 4c949ec9
Child 79fa773b

Added by Francois POIROTTE about 14 years ago

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

View differences:

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