Example #1
0
    def setUp(self):
        super(TestRootController, self).setUp()
        perm = Permission.by_permission_name(u'vigiboard-access')
        perm2 = Permission.by_permission_name(u'vigiboard-update')

        user = User(
            user_name=u'access',
            fullname=u'',
            email=u'user.has@access',
        )
        usergroup = UserGroup(group_name=u'users_with_access')
        usergroup.permissions.append(perm)
        usergroup.permissions.append(perm2)
        user.usergroups.append(usergroup)
        DBSession.add(user)
        DBSession.add(usergroup)
        DBSession.flush()

        user = User(
            user_name=u'limited_access',
            fullname=u'',
            email=u'user.has.no@access',
        )
        usergroup = UserGroup(group_name=u'users_with_limited_access')
        usergroup.permissions.append(perm)
        usergroup.permissions.append(perm2)
        user.usergroups.append(usergroup)
        DBSession.add(user)
        DBSession.add(usergroup)
        DBSession.flush()
Example #2
0
    def setUp(self):
        super(TestDetailsPlugin, self).setUp()
        perm = Permission.by_permission_name(u'vigiboard-access')

        user = User(
            user_name=u'access',
            fullname=u'',
            email=u'user.has@access',
        )
        usergroup = UserGroup(group_name=u'users_with_access')
        usergroup.permissions.append(perm)
        user.usergroups.append(usergroup)
        DBSession.add(user)
        DBSession.add(usergroup)
        DBSession.flush()

        user = User(
            user_name=u'no_access',
            fullname=u'',
            email=u'user.has.no@access',
        )
        usergroup = UserGroup(group_name=u'users_without_access')
        usergroup.permissions.append(perm)
        user.usergroups.append(usergroup)
        DBSession.add(user)
        DBSession.add(usergroup)
        DBSession.flush()

        transaction.commit()
    def test_get_root_group_when_not_allowed(self):
        """Récupération des groupes racines de l'arbre sans les droits"""
        # Récupération du groupe utilisé lors de ce test.
        SupItemGroup.by_group_name(u'root')

        # Création d'un nouvel utilisateur et d'un nouveau groupe
        usergroup = UserGroup(group_name=u'new_users')
        vigiboard_perm = Permission.by_permission_name(u'vigiboard-access')
        usergroup.permissions.append(vigiboard_perm)
        user = User(
            user_name=u'new_user',
            fullname=u'',
            email=u'user.has.no@access',
        )
        user.usergroups.append(usergroup)
        DBSession.add(user)
        DBSession.flush()
        transaction.commit()

        # L'utilisateur est authentifié mais n'a aucun accès. Il
        # cherche à obtenir la liste des groupes racines de l'arbre.
        response = self.app.get('/get_groups',
            extra_environ={'REMOTE_USER': '******'})
        json = response.json

        # On s'assure que la liste retournée est bien vide.
        self.assertEqual(
            json, {
                'items': [],
                'groups': []
            }
        )
 def setUp(self):
     super(TestSearchFormService, self).setUp()
     perm = Permission.by_permission_name(u'vigiboard-access')
     user = User(
         user_name=u'user',
         fullname=u'',
         email=u'*****@*****.**',
     )
     usergroup = UserGroup(group_name=u'users')
     user.usergroups.append(usergroup)
     usergroup.permissions.append(perm)
     DBSession.add(user)
     DBSession.add(usergroup)
     DBSession.flush()
Example #5
0
def populateDB():
    """
    Peuple la base de données en ajoutant :
     - 3 groupes d'hôtes ;
     - 3 hôtes ;
     - 3 utilisateurs.
    Les objets construits respectent les matrices suivantes.


    Matrice des utilisateurs et groupes d'utilisateurs :

    +-------------------+-----------+---------------+-------+-----------+
    | util. \ groupe    | managers  | powerusers    | users | visitor   |
    +===================+===========+===============+=======+===========+
    | manager           |     X     |               |       |           |
    +-------------------+-----------+---------------+-------+-----------+
    | poweruser         |           |       X       |       |           |
    +-------------------+-----------+---------------+-------+-----------+
    | user              |           |               |   X   |           |
    +-------------------+-----------+---------------+-------+-----------+
    | visitor           |           |               |       |     X     |
    +-------------------+-----------+---------------+-------+-----------+


    Matrice des groupes d'utilisateurs et des droits
    sur les groupes d'objets supervisés :

    +---------------------------+-----------+-----------+-----------+
    | usergroup \ supitemgroup  |    mhg    |    hg1    |   hg2     |
    |                           |  (host1)  |  (host2)  | (host3)   |
    +===========================+===========+===========+===========+
    | managers                  |    /      |    /      |    /      |
    +---------------------------+-----------+-----------+-----------+
    | powerusers                |    X      |    /      |    /      |
    +---------------------------+-----------+-----------+-----------+
    | users                     |           |    X      |           |
    +---------------------------+-----------+-----------+-----------+
    | visitors                  |           |           |           |
    +---------------------------+-----------+-----------+-----------+
    (X = accès explicite, / = accès implicite)


    @return: Tuple contenant les trois hôtes créés.
    @rtype:  C{tuple} of C{vigilo.models.tables.Host}
    """

    # Ajout d'un groupe d'hôtes principal
    mainhostgroup = add_supitemgroup(u'mhg', None)

    # Ajout d'un premier groupe d'hôtes de second niveau
    hostgroup1 = add_supitemgroup(u'hg1', mainhostgroup)

    # Ajout d'un second groupe d'hôtes de second niveau
    hostgroup2 = add_supitemgroup(u'hg2', mainhostgroup)

    # Ajout de trois hôtes
    # On ajoute des caractères spéciaux pour détecter les
    # conversions implicites Unicode <-> ASCII (et leurs erreurs).
    host1 = add_host(u'host1 éà')
    host2 = add_host(u'host2 éà')
    host3 = add_host(u'host3 éà')

    # Ajout du premier hôte dans le groupe d'hôtes principal.
    add_host2group(host1, mainhostgroup)
    # Ajout du deuxième hôte dans le premier
    # groupe d'hôtes de second niveau.
    add_host2group(host2, hostgroup1)
    # Ajout du troisième hôte dans le second
    # groupe d'hôtes de second niveau.
    add_host2group(host3, hostgroup2)

    # Ajout de trois groupes d'utilisateurs
    poweruser_group = add_usergroup(u'powerusers')
    user_group = add_usergroup(u'users')
    visitor_group = add_usergroup(u'visitor')

    # Ajout de trois utilisateurs
    add_user(u'poweruser', u'*****@*****.**',
        u'Power User', u'poweruserpass', u'powerusers')
    add_user(u'user', u'*****@*****.**',
        u'User', u'userpass', u'users')
    add_user(u'visitor', u'*****@*****.**',
        u'', u'visitorpass', u'visitor')

    # Ajout des permissions sur le groupe d'hôtes
    # principal pour le premier groupe d'utilisateurs
    add_supitemgrouppermission(mainhostgroup, poweruser_group)

    # Ajout des permissions sur le premier groupe d'hôtes
    # secondaire pour le second groupe d'utilisateurs
    add_supitemgrouppermission(hostgroup1, user_group)

    # Ajout de la permission 'vigigraph-access' aux groupes d'utilisateurs
    perm = Permission.by_permission_name(u'vigigraph-access')
    add_usergroup_permission(poweruser_group, perm)
    add_usergroup_permission(user_group, perm)
    add_usergroup_permission(visitor_group, perm)

    return (host1, host2, host3)
Example #6
0
def populate_DB():
    """ Peuple la base de données. """

    # Création des 4 groupes de supitems :
    # - 1 groupe racine 'root' ;
    root = functions.add_supitemgroup(u'root')
    # - 1 groupe principal 'maingroup' ;
    maingroup = functions.add_supitemgroup(u'maingroup', root)
    # - 2 sous-groupes 'group1' et 'group2', faisant tous
    #   les deux parties du groupe principal 'maingroup'.
    group1 = functions.add_supitemgroup(u'group1', maingroup)
    group2 = functions.add_supitemgroup(u'group2', maingroup)

    # Création de 2 groupes d'utilisateurs (contenant chacun un utilisateur) :
    vigiboard_perm = Permission.by_permission_name(u'vigiboard-access')
    # - le premier avec des droits étendus
    #   (il a indirectement accès à tous les groupes de supitems) ;
    usergroup = UserGroup(group_name=u'users_with_access')
    usergroup.permissions.append(vigiboard_perm)
    DBSession.add(DataPermission(
        group = root,
        usergroup = usergroup,
        access = u'r',
    ))
    user = User(
        user_name=u'access',
        fullname=u'',
        email=u'user.has@access',
    )
    user.usergroups.append(usergroup)
    DBSession.add(user)

    # - le second avec des droits plus restreints
    #   (il n'a accès qu'au groupe de supitems 'group1').
    usergroup = UserGroup(group_name=u'users_with_limited_access')
    usergroup.permissions.append(vigiboard_perm)
    DBSession.add(DataPermission(
        group = group1,
        usergroup = usergroup,
        access = u'r',
    ))
    user = User(
        user_name=u'limited_access',
        fullname=u'',
        email=u'user.has.limited@access',
    )
    user.usergroups.append(usergroup)
    DBSession.add(user)
    DBSession.flush()

    # Création de 3 hôtes (1 par groupe de supitems).
    maingroup_host = functions.add_host(u'maingroup_host')
    group1_host = functions.add_host(u'group1_host')
    group2_host = functions.add_host(u'group2_host')

    # Affectation des hôtes aux groupes.
    maingroup.supitems.append(maingroup_host)
    group1.supitems.append(group1_host)
    group2.supitems.append(group2_host)
    DBSession.flush()

    # Création de 3 services de bas niveau (1 par hôte).
    group1_service = functions.add_lowlevelservice(
        group1_host, u'group1_service')
    group2_service = functions.add_lowlevelservice(
        group2_host, u'group2_service')
    maingroup_service = functions.add_lowlevelservice(
        maingroup_host, u'maingroup_service')

    # Ajout de 6 événements (1 par supitem)
    event1 = functions.add_event(maingroup_host, u'WARNING', u'foo')
    event2 = functions.add_event(maingroup_service, u'WARNING', u'foo')
    event3 = functions.add_event(group1_host, u'WARNING', u'foo')
    event4 = functions.add_event(group1_service, u'WARNING', u'foo')
    event5 = functions.add_event(group2_host, u'WARNING', u'foo')
    event6 = functions.add_event(group2_service, u'WARNING', u'foo')

    # Ajout de 5 événements corrélés (1 pour chaque évènement,
    # sauf celui touchant le 'maingroup_service' qui sera rattaché
    # à l'évènement corrélé causé par le 'maingroup_host').
    functions.add_correvent([event1, event2])
    functions.add_correvent([event3])
    functions.add_correvent([event4])
    functions.add_correvent([event5])
    functions.add_correvent([event6])
    transaction.commit()