Boa Noite,

Pedro

Caso seja possível, tem como implementar a opção de pagar ramal, politica igual a que já existe de pegar ip e pegar mac? Seria mto interessante, e iria ajudar mto.

Caso seja possível, fico grato.

att,

Jose Carlos

Para adicionar comentários, você deve ser membro de MK-AUTH.

Join MK-AUTH

Enviar-me um email quando as pessoas responderem –

Respostas

  • seria uma boa mesmo.

  • realmente seria bom, mais o pessoal já se complicado todo como o pegar ip e mac, penso que colocar o ramal tb somente piora as coisas...

  • Consegui hoje Zé Carlos, terminei, to postando aki antes de te ligar.

    Recomendável criar um backup antes

    Veja só o sql:

    /*verifica se existe uma tabela temporária com esse nome e a exclui se for o caso */
    drop temporary table if exists cli_ramais;
    /*cria uma tabela temporária com o resultado da consulta */
    create temporary table cli_ramais
        /*Esta instrução retorna os dados da instrucao abaixo mais o nome do ramal*/
        (select radpost.id, radpost.username, radpost.ramal,nas.shortname from nas inner join
            /*Esta instrução retorna a dados da linha que contem a última autenticação cliente para isso utiliza o retorna da instrucao abaixo */
            (select radpostauth.id, username, ramal from radpostauth inner join
                /* Esta instrução select retorna uma tabela de uma coluna com o id do último acesso do cliente*/
                (select max(id) as id from radpostauth where reply = "Access-Accept" group by username) as postauth
                 on radpostauth.id = postauth.id where ramal is not null) as radpost on radpost.ramal = nas.nasname);

    /*verifica se existe uma tabela temporária com esse nome e a exclui se for o caso */
    drop temporary table if exists tmp_radcheck;

    /*cria uma tabela temporária com o resultado da consulta */
    create temporary table tmp_radcheck
    (select idcliente,login, username from radcheck where attribute = "Password" and tipo = "log" and username <> value group by username);

    /*Altera o nome do ramal que o cliente autenticou por na tabela sis_cliente utilizando os dados da tabela temporária criada*/            
    update sis_cliente, cli_ramais set sis_cliente.ramal = shortname where cli_ramais.username = sis_cliente.login;

    /*Apaga todas as informacoes de ramal que estiver na tabela e autenticação para poder inserir o último que o cliente autenticou*/
    delete from radcheck where attribute = "NAS-IP-Address" and username in (select username from cli_ramais);

    /*Utiliza os dados da tabela temporária para definir o ramal que o cliente poderá autenticar */
    insert into radcheck (username, attribute, op, value, ativo, ativo2, login, idcliente, tipo)
    select cli_ramais.username, "Nas-IP-Address" as atributo, "==" as opr, cli_ramais.ramal, "s" as ativo, "s" as ativo2,
    tmp_radcheck.login, tmp_radcheck.idcliente, "log" as tipo from cli_ramais left join tmp_radcheck on cli_ramais.username = tmp_radcheck.username;

This reply was deleted.