Exemple #1
0
def test_validate_roles():
    from metrique.utils import validate_roles

    valid_roles = ['SELECT', 'ADMIN', 'WRITE']
    OK = ['SELECT', 'ADMIN']
    BAD = ['BLOWUP', 'ADMIN']

    assert validate_roles(OK, valid_roles) == sorted(OK)
    try:
        validate_roles(BAD, valid_roles) == sorted(BAD)
    except ValueError:
        pass
    else:
        assert False, "Validated BAD role"
Exemple #2
0
def test_validate_roles():
    from metrique.utils import validate_roles

    valid_roles = ['SELECT', 'ADMIN', 'WRITE']
    OK = ['SELECT', 'ADMIN']
    BAD = ['BLOWUP', 'ADMIN']

    assert validate_roles(OK, valid_roles) == sorted(OK)
    try:
        validate_roles(BAD, valid_roles) == sorted(BAD)
    except ValueError:
        pass
    else:
        assert False, "Validated BAD role"
Exemple #3
0
    def share(self, with_user, roles=None, table=None):
        '''
        Give cube access rights to another user

        Not, this method is NOT supported by SQLite3!
        '''
        table = self.get_table(table)
        is_true(table is not None, 'invalid table: %s' % table)
        with_user = validate_username(with_user)
        roles = roles or ['SELECT']
        roles = validate_roles(roles, self.VALID_SHARE_ROLES)
        roles = list2str(roles)
        logger.info('Sharing cube %s with %s (%s)' % (table, with_user, roles))
        sql = 'GRANT %s ON %s TO %s' % (roles, table, with_user)
        return self.session_auto.execute(sql)
Exemple #4
0
    def share(self, with_user, roles=None, table=None):
        '''
        Give cube access rights to another user

        Not, this method is NOT supported by SQLite3!
        '''
        table = self.get_table(table)
        is_true(table is not None, 'invalid table: %s' % table)
        with_user = validate_username(with_user)
        roles = roles or ['SELECT']
        roles = validate_roles(roles, self.VALID_SHARE_ROLES)
        roles = list2str(roles)
        logger.info('Sharing cube %s with %s (%s)' % (table, with_user, roles))
        sql = 'GRANT %s ON %s TO %s' % (roles, table, with_user)
        return self.session_auto.execute(sql)