Пример #1
0
 def on_click(self, event, params, vars=None):
     if params[0] == 'edit':
         self._editing = int(params[1])  # selected host
     elif params[0] == 'del':
         config = ContrBanda()
         config.delFiltro(ip=params[1], ALL=True)
         del config
     elif params[0] == 'apagar_conf':
         config = ContrBanda()
         config.delConfiguracoes()
         del config
     elif params[0] == 'apagar_filtros':
         config = ContrBanda()
         if not config.delFiltro():
             self._editing = 'error_apagar_todos_filtros'
         del config
Пример #2
0
    def on_submit(self, event, params, vars=None):
        if params[0] == "cad_banda":
            if vars.getvalue('action', '') == 'cadastrar_banda':
                a = vars.list[2]
                if vars.getvalue('interface') == '' or vars.getvalue(
                        'banda') == '' or a.value == '':
                    self._editing = 'error_cadastrar_banda'
                else:
                    config = ContrBanda()
                    config.setConfigFile(vars.getvalue('interface'),
                                         vars.getvalue('banda'), a.value)
                    config.setConfiguracoes()
                    del config
                    self._editing = None

        elif params[0] == "cad_ip":
            if vars.getvalue('action', '') == 'cadastrar_ip':
                if vars.getvalue('ip') == '' or vars.getvalue(
                        'mascara') == '' or vars.getvalue(
                            'banda_pc') == '' or vars.getvalue(
                                '') == 'id_pc' or vars.list[-2].value == '':
                    self._editing = 'error_cadastrar_filtro'
                else:
                    ip = '%s' % vars.getvalue('ip')
                    mascara = '%s' % vars.getvalue('mascara')
                    banda = '%s' % vars.getvalue('banda_pc')
                    medida = '%s' % vars.list[-2].value
                    id_pc = '%s' % vars.getvalue('id_pc')
                    aux = ContrBanda()
                    if aux.addFiltroFile(ip, mascara, banda, id_pc, medida):
                        aux.addFiltro(ip=ip)
                        self.errorFiltro = False
                    else:
                        self.errorFiltro = True
                        self._editing = 'error_cadastrar_filtro'
                    del aux
Пример #3
0
    def get_ui(self):
        config = ContrBanda()
        confBanda = config.getConfigFile()
        # testando se a alguma configuracao de banda
        if confBanda.get('interface') == None or confBanda.get(
                'medida') == None or confBanda.get('banda') == None:
            ui = self.app.inflate('controle_banda:cad_banda')
            lista = ui.find('interface')
            for i in self.getInterface():
                lista.append(UI.SelectOption(value=i, text=i))
        # caso tenha uma banda já configurada segue adiante com opcoes de redefinir o controle de banda e cadastrar novos filtros etc
        else:
            ui = self.app.inflate('controle_banda:main')
            lista = ui.find('interface')
            ui.find('banda').set(
                'value', confBanda.get('banda')
            )  # mostrando a quantidade de banda que esta configurada

            med = ui.find('tipo_medida')
            if confBanda.get('medida') == 'MBytes':
                med.append(
                    UI.TipIcon(
                        icon='/dl/core/ui/stock/info.png',
                        text='Quantidade de banda em MBytes',
                    ))
            else:
                med.append(
                    UI.TipIcon(
                        icon='/dl/core/ui/stock/info.png',
                        text='Quantidade de banda em KBytes',
                    ))

            mascaras = ui.find('mascara')
            for i in range(33):
                mascaras.append(
                    UI.SelectOption(value=int(32 - i), text=int(32 - i)))
        # imprimindo interfaces que podem ser definidas
            for i in self.getInterface():
                if i == confBanda.get('interface'):
                    lista.append(
                        UI.SelectOption(value=i, text=i, selected=True))

            # imprimindo os filtros cadastrados se tiverem
            t = ui.find('list')
            if self.hosts == []:
                t.append(
                    UI.DTR(UI.DTH(
                        UI.Label(text="Nenhum filtro encontrado..."))))
            else:
                for h in self.hosts:
                    t.append(
                        UI.DTR(
                            UI.Label(text=h.ip + '/' + h.mascara),
                            UI.Label(text=(h.banda + ' ' + h.medida)),
                            UI.Label(text=h.nome),
                            UI.HContainer(
                                UI.TipIcon(
                                    icon='/dl/core/ui/stock/delete.png',
                                    id='del/' + str(h.ip),
                                    text='Remover filtro',
                                )),
                        ))

        if self._editing is not None:
            # caso o usuario tente cadastrar uma banda sem passar nenhum parametro
            if self._editing == 'error_cadastrar_banda':
                e = ui.find('error')
                e.append(
                    UI.Label(
                        text="Todos os campos tem que ser preenchidos !!!",
                        size=3))
        # trata o erro quando o usuario tenta exluir todos os filtros sendo que nao a nenhum a ser excluido
            elif self._editing == 'error_apagar_todos_filtros':
                e = ui.find('error')
                e.append(UI.Label(text='Não a nenhum filtro a ser apagado...'))
                self._editing = None
            # caso haja algum erro no cadastro de filtros
            elif self._editing == 'error_cadastrar_filtro':
                if self.errorFiltro:
                    e = self.app.inflate('controle_banda:msgerro')
                    e.find('msg').set('text', 'Filtro já cadastrado !')
                    ui.append('error', e)
                    self._editing = None
                else:
                    e = self.app.inflate('controle_banda:msgerro')
                    e.find('msg').set(
                        'text', 'Todos os campos tem que ser preenchidos !')
                    ui.append('error', e)
                    self._editing = None
            else:

                try:
                    h = self.hosts[self._editing]
                except:
                    h = backend.Host()
                d = self.app.inflate(
                    'controle_banda:edit')  # inflate and fill the dialog
                d.find('ip').set('value', h.ip)
                masc = d.find('mascara')
                for i in range(33):
                    if str(h.mascara) == str(32 - i):
                        masc.append(
                            UI.SelectOption(value=int(32 - i),
                                            text=int(32 - i),
                                            selected=True))
                    else:
                        masc.append(
                            UI.SelectOption(value=int(32 - i),
                                            text=int(32 - i)))
                d.find('banda').set('value', h.banda)
                med = d.find('medida')
                for i in ['Mbits', 'Kbits']:
                    if h.medida == i:
                        med.append(
                            UI.SelectOption(value=i, text=i, selected=True))
                    else:
                        med.append(UI.SelectOption(value=i, text=i))
                d.find('id_pc').set('value', h.id_pc)
                ui.append('lista_de_ips', d)  # and append it to main UI

        return ui