PABX da Simples IP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

206 lines
9.9 KiB

<?php
$param = '';
$erro = '';
// echo VerificaAgenteLogadoAstrisk('elvis') ? 'Deslogado' : 'Logado';
$janW = 500;
$janH = 285;
$tpl = 'seguranca/usuarioConsulta.tpl';
$paramPesquisa = isset($_REQUEST['paramPesquisa']) ? $_REQUEST['paramPesquisa'] : '';
$filtro = isset($_REQUEST["paramPesquisa"]) ? trim($_REQUEST["paramPesquisa"]) : '';
$filtroNovo = !isset($_REQUEST["pgn"]) ? '' : sprintf("&paramPesquisa%s&pgn=%s&bloco=%s&pg=%s&status=%s", $_REQUEST["paramPesquisa"], $_REQUEST["pgn"], $_REQUEST["bloco"], $_REQUEST["pg"],$_REQUEST["status"]);
$recontaPag = (GetFormAcao() == FORM_DELETE) || isset($_POST['pesquisa']);
$statusAtivo = isset($_REQUEST["status"]) ? trim($_REQUEST["status"]) : 'A';
$imgNovo = "<img src=\"images/novo.gif\" width=\"16\" height=\"16\" align=\"absmiddle\" border=\"0\" title=\"Inclui novo usu<EFBFBD>rio\">";
$imgNovo = "<a href=\"javaScript:NovaJanela('index.php?idProg=22&idUser=0$filtroNovo', 'usuarioCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\">$imgNovo Novo Usu<EFBFBD>rio</a>";
$imgLcFixo = "<img src=\"images/global.gif\" width=\"16\" height=\"16\" align=\"absmiddle\" border=\"0\" title=\"Licen<EFBFBD>a fixo usu<EFBFBD>rio\">";
$imgLcFixo = "<a href=\"javaScript:NovaJanela('index.php?idProg=362', 'usuarioCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\">$imgLcFixo Licen<EFBFBD>a Usu<EFBFBD>rio</a>";
if (IsPostBack() || (isset($_GET["idDelete"])) || (isset($_GET["idReset"]))) {
if (isset($_GET["idDelete"])) {
$id = QuotedStr($_GET["idDelete"]);
$param = $_SESSION["SSparamUser"];
try {
$msgAgt = "";
if (!pg_query($dbcon, 'begin')) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel iniciar a opera<EFBFBD><EFBFBD>o de exclus<EFBFBD>o do usu<EFBFBD>rio!");
}
/*
* Pega o codigo do grupo do usuario;
*/
$query = "select gp_id from pbx_grupo where user_id = $id";
$result = pg_query($dbcon, $query);
$row = pg_fetch_row($result);
$gpIdUser = QuotedStr($row[0]);
/*
* apaga o perfil exclusivo do usuario.
*/
/*
* Preserva apenas o grupo reservado do ususario.
*/
$query = "delete from pbx_grupo_usuario where user_id = {$id} and gp_id <> {$gpIdUser}";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel remover o usu<EFBFBD>rio dos grupos relacionados!");
}
/*
* Apaga as funcoes exclusivas do usuario.
*/
$query = " delete from pbx_grupo_funcoes where gp_id = {$gpIdUser}";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel remover o perfil exclusido do usu<EFBFBD>rio!");
}
/*
* Deleta restricoes de audio criadas para o grupo do usuario.
*/
$query = "delete from pbx_grupo_audio_ramal where gp_id = {$gpIdUser}";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel remover as restri<EFBFBD><EFBFBD>es de <EFBFBD>udio dos ramais para o usu<EFBFBD>rio!");
}
/*
* Deleta restricoes de audio criadas para o grupo do usuario.
*/
$query = "delete from pbx_fila_audios where gp_id = {$gpIdUser}";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel remover as restri<EFBFBD><EFBFBD>es de <EFBFBD>udio das filas para usu<EFBFBD>rio!");
}
/*
* Deleta permissao de acesso a revendas.
*/
$query = "delete from pbx_grupo_revendas where gp_id = {$gpIdUser}";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel remover as revendas ligadas ao usu<EFBFBD>rio!");
}
$query = "update pbx_usuarios set senha = md5('1234'), def_senha = 1 where id = $id;";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel atualizar a senha padr<EFBFBD>o do usu<EFBFBD>rio!");
}
$query = "update pbx_usuarios set status = false where id = $id";
if (!pg_query($dbcon, $query)) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel atualizar o status do usu<EFBFBD>rio!");
}
if (IncluiAgenteFile($dbcon) != "OK") {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel remover o usu<EFBFBD>rio da central!");
}
if (!pg_query($dbcon, 'commit')) {
GeraExcept("N<EFBFBD>o foi poss<EFBFBD>vel finalizar a opera<EFBFBD><EFBFBD>o!");
}
$msg = "alert('Opera<EFBFBD><EFBFBD>o realizada com sucesso!');";
} catch (Exception $ex) {
@pg_query($dbcon, 'rollback');
$msg = sprintf("alert('%s');", $ex->getMessage());
}
$jsStartup[] = $msg;
} else if (isset($_GET["idReset"])) {
$id = $_GET["idReset"];
$param = $_SESSION["SSparamUser"];
$query = "update pbx_usuarios set senha = md5('1234'), def_senha = 1 where id = $id; ";
$query .= "UPDATE pbx_controle_acesso SET acs_erro = 2 WHERE acs_user_id = $id AND acs_erro = 1; ";
$result = @pg_query($dbcon, $query);
if ($result)
@pg_affected_rows($result);
if ($result) {
$msg = "alert('Senha redefinida com sucesso!');";
} else {
$msg = "alert('A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!');";
}
$jsStartup[] = $msg;
}
}
$compl = '';
if (isset($_REQUEST['paramPesquisa']) && $_REQUEST['paramPesquisa']) {
$compl = PreparaLike($filtro, true);
$compl = sprintf("and (a.nome ilike %s or a.apelido ilike %s or a.matricula ilike %s)", $compl, $compl, $compl);
}
if ($statusAtivo == "A") {
$statusAtv = 'true';
} else if ($statusAtivo == "I") {
$statusAtv = 'false';
}
$statusAtv = $statusAtivo ? "and status = $statusAtv" : '';
$query = "select id, nome, apelido, matricula, flag, coalesce(\"admin\", false)::int as adm , senha, coalesce(supervisor, false)::int as supervisor,
coalesce(agente,false)::int as agente, email, coalesce(status,true)::int as status from pbx_usuarios a ";
$query .= "where apelido <> 'sinccontasenha' $statusAtv $compl "
. "and upper(apelido) <> 'ADMIN' order by nome";
$params = "&paramPesquisa={$filtro}&status=$statusAtivo";
$links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true);
$query .= " limit $regPagina offset $offSet";
$result = pg_query($dbcon, $query);
$linha = "";
while ($dados = @pg_fetch_array($result)) {
$apelido = $dados["apelido"];
$imgEdit = "<img src=\"imgSite/editaUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Edita o usu<EFBFBD>rio: $apelido\">";
$imgReset = "<img src=\"imgSite/redefineSenha.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Define senha padr<EFBFBD>o para o usu<EFBFBD>rio: $apelido\">";
$imgDelete = sprintf("<img src=\"imgSite/%s\" width=\"16\" height=\"16\" border=\"0\" title=\" %s\">", ($dados['status'] == 1 ? 'deletaUser.png' : 'deletaUserOff.png'), ( $dados['status'] == 1 ? "Desabilita e remove todo o perfil do usu<EFBFBD>rio: $apelido" : "O usu<EFBFBD>rio: $apelido foi desativado e seu perfil removido!"));
$imgPerfil = "<img src=\"imgSite/userOn16.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Mostra o perifil do usu<EFBFBD>rio: $apelido\">";
$id = $dados["id"];
$nome = $dados["nome"];
$nome = "<a style=\"color: #000;\" href=\"javaScript:NovaJanela('index.php?idProg=22&idUser=$id', 'usuarioCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\"> $nome</a>";
$imgEdit = "<a href=\"javaScript:NovaJanela('index.php?idProg=22&idUser=$id', 'usuarioCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\"> $imgEdit</a>";
$imgReset = "<a href=\"javaScript:ResetaSenhaUser('$id', '$params');\">$imgReset</a>";
$id = "<a style=\"color: #000;\" href=\"javaScript:NovaJanela('index.php?idProg=22&idUser=$id', 'usuarioCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\"> $id</a>";
$matricula = $dados["matricula"];
$flag = $dados["flag"];
//$admin = $dados["adm"] ? $imgYes : $imgNo;
$senha = $dados["senha"];
//$supervisor = $dados["supervisor"] ? $imgYes : $imgNo;
//$agente = $dados["agente"] ? $imgYes : $imgNo;
$email = !empty($dados["email"]) ? ocultarEmail($dados["email"]) : "&nbsp;";
$status = GetStatusModulo($dados['status'], true);
$delete = $dados['status'] == 1 ? "<a href=\"javaScript:DeletaUser('" . $dados["id"] . "', '$params');\">" . $imgDelete . "</a>" : $imgDelete;
$perfil = "<a href=\"javaScript:NovaJanela('index.php?idProg=123&login=$apelido', 'PerfilUser', '300', '500', 'scrollbars=YES');\">" . $imgPerfil . "</a>";
$linha .= " <tr>
<td align=\"center\">$id</td>
<td align=\"left\" nowrap>$nome</td>
<td width=\"120\" align=\"left\">$apelido</td>
<td width=\"120\" align=\"left\">$matricula</td>
<td width=\"200\" align=\"left\" nowrap>$email</td>
<td width=\"20\" align=\"center\">$status</td>
<td width=\"20\" align=\"center\" style=\"border-right: 0\">$imgEdit</td>
<td width=\"20\" align=\"center\" style=\"border-left: 0; border-right: 0\">$imgReset</td>
<td width=\"20\" align=\"center\" style=\"border-left: 0\">$delete</td>
<td width=\"20\" align=\"center\">$perfil</td>
</tr>";
}
$smarty->assign('erro', $erro);
$smarty->assign("linhas", $linha);
$smarty->assign("paramPesquisa", $paramPesquisa);
$smarty->assign("imgNovo", $imgNovo);
$smarty->assign("imgLcFixo", $imgLcFixo);
$smarty->assign("links", $links);
$smarty->assign("pagMostra", $pagMostra);
$smarty->assign("totalReg", $totalReg);
$smarty->assign("status", $statusAtivo);
$smarty->assign("pgn", $_REQUEST["pgn"]);
$smarty->assign("bloco", $_REQUEST["bloco"]);
$smarty->assign("pg", $_REQUEST["pg"]);
GetTemplate($smarty, $tpl);
?>