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
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.
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;