|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* To change this template, choose Tools | Templates
|
|
|
|
|
* and open the template in the editor.
|
|
|
|
|
*/
|
|
|
|
|
require_once("util/constantes.php");
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
$limpaVar = 0;
|
|
|
|
|
$msgLogin = "";
|
|
|
|
|
$idUser = isset($_GET["idUser"]) ? $_GET["idUser"] : $_POST["idUser"];
|
|
|
|
|
$msgMatricula = "disabled";
|
|
|
|
|
$msgAgt = "";
|
|
|
|
|
$userAgente = "";
|
|
|
|
|
$userSuper = "";
|
|
|
|
|
$userAdm = "";
|
|
|
|
|
$userStatus = isset($_POST["userStatus"]) ? "checked" : "";
|
|
|
|
|
|
|
|
|
|
// $listaDacs = GetDac($dbcon, isSet($_POST["listaDacs"]) ? $_POST["listaDacs"] : 0, "", 0, 1);
|
|
|
|
|
//novo usuario
|
|
|
|
|
|
|
|
|
|
if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
|
|
|
|
|
$acaoUser = 'Incluir';
|
|
|
|
|
$userMatricula = GetMatriculaAgente($dbcon);
|
|
|
|
|
$userPassword = '1234';
|
|
|
|
|
$dacPadrao = GetDacs($dbcon, 0, "", 0, 1);
|
|
|
|
|
$userStatus = "checked";
|
|
|
|
|
} else if (isset($_GET["idUser"]) && $_GET["idUser"] > 0) {
|
|
|
|
|
$msgLogin = "disabled";
|
|
|
|
|
$acaoUser = 'Alterar';
|
|
|
|
|
$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, penalidade, senha_dias_expira from pbx_usuarios \n";
|
|
|
|
|
$query .= "where id = $idUser";
|
|
|
|
|
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
if ($result)
|
|
|
|
|
$dados = pg_fetch_array($result);
|
|
|
|
|
|
|
|
|
|
$userNome = $dados["nome"];
|
|
|
|
|
$userLogin = $dados["apelido"];
|
|
|
|
|
$userMatricula = $dados["matricula"];
|
|
|
|
|
$userPassword = DEFAULT_MASC_PASSWORD; // $dados["senha"];
|
|
|
|
|
$userEmail = $dados["email"];
|
|
|
|
|
$userExpiraSenha = $dados["senha_dias_expira"];
|
|
|
|
|
//$userAgente = $dados["agente"] ? "checked" : "";
|
|
|
|
|
// $userSuper = $dados["supervisor"] ? "checked" : "";
|
|
|
|
|
// $userAdm = $dados["adm"] ? "checked" : "";
|
|
|
|
|
$userStatus = $dados["status"] ? "checked" : "";
|
|
|
|
|
$penalidade = $dados["penalidade"];
|
|
|
|
|
$dacAgente = GetIdDacPadrao($dbcon, $idUser);
|
|
|
|
|
$dacPadrao = GetDacs($dbcon, $dacAgente, "", 0, 1);
|
|
|
|
|
} else if ((isset($_POST["btGravar"]))) {
|
|
|
|
|
$msg = "";
|
|
|
|
|
if (empty($_POST["userNome"]))
|
|
|
|
|
$msg = "alert('Informe o nome do Usu<EFBFBD>rio!');";
|
|
|
|
|
else if (($_POST["btGravar"] != "Alterar") && empty($_POST["userLogin"]))
|
|
|
|
|
$msg = "alert('Informe um apelido!');";
|
|
|
|
|
else if (empty($_POST["userPassword"]))
|
|
|
|
|
$msg = "alert('Informe a senha');";
|
|
|
|
|
else if (($_POST["btGravar"] != "Alterar") && ExisteRegistro($dbcon, "pbx_usuarios", "apelido", (strtolower($_POST["userLogin"]))))
|
|
|
|
|
$msg = "alert('Login j<EFBFBD> cadastrado!');";
|
|
|
|
|
else if (($_POST["btGravar"] != "Alterar") && ExisteRegistro($dbcon, "pbx_usuarios", "matricula", ($_POST["userMatriculaH"])))
|
|
|
|
|
$msg = "alert('Matr<EFBFBD>cula j<EFBFBD> cadastrada!');";
|
|
|
|
|
else if ($_POST["userEmail"] && !is_email($_POST["userEmail"]))
|
|
|
|
|
$msg = "alert('Email Inv<EFBFBD>lido!');";
|
|
|
|
|
else if (ExisteRegistro($dbcon, "pbx_usuarios", "email", (strtolower($_POST["userEmail"])), ($idUser ? "id <> {$idUser}" : '')))
|
|
|
|
|
$msg = "alert('O e-mail informado j<EFBFBD> foi registrado!');";
|
|
|
|
|
else if ($_POST["userExpiraSenha"] < 0)
|
|
|
|
|
$msg = "alert('O tempo de expira<EFBFBD><EFBFBD>o deve ser maior ou igual 0 'zero');";
|
|
|
|
|
|
|
|
|
|
$userNome = mb_strtoupper(RemoveAcentos($_POST["userNome"]));
|
|
|
|
|
$userLogin = mb_strtolower(RemoveAcentos(RemoveEspaco( $_POST["btGravar"] != "Alterar" ? $_POST["userLogin"] : $_POST["userLoginH"]), -1));
|
|
|
|
|
$userMatricula = $_POST["userMatriculaH"];
|
|
|
|
|
$userPassword = ($_POST["userPassword"]);
|
|
|
|
|
$userEmail = RemoveAcentos(strtolower($_POST["userEmail"]));
|
|
|
|
|
//$userAgente = $_POST["userAgente"] ? "" : "";
|
|
|
|
|
// $userSuper = $_POST["userSuper"] ? "" : "";
|
|
|
|
|
//$userAdm = $_POST["userAdm"] ? "" : "";
|
|
|
|
|
$userStatus = isset($_POST["userStatus"]) ? "checked" : "";
|
|
|
|
|
$acaoUser = $_POST["btGravar"];
|
|
|
|
|
$penalidade = $_POST["penalidade"] ? soNumero($_POST["penalidade"]) : "0";
|
|
|
|
|
$dacPadraoSel = $_POST["listaDacs"] ? $_POST["listaDacs"] : "0";
|
|
|
|
|
$dacPadrao = GetDacs($dbcon, $dacPadraoSel, "", 0, 1);
|
|
|
|
|
$userExpiraSenha = $_POST["userExpiraSenha"] ? $_POST["userExpiraSenha"] : 0;
|
|
|
|
|
|
|
|
|
|
if (empty($msg) && ($_POST["btGravar"] == 'Incluir')) {
|
|
|
|
|
|
|
|
|
|
$result = @pg_query($dbcon, "begin");
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$userMatricula = GetMatriculaAgente($dbcon);
|
|
|
|
|
|
|
|
|
|
$query = "insert into pbx_usuarios(nome, apelido, matricula, flag, \"admin\", senha, supervisor, agente, email, status, penalidade, dac_padrao, check_vl, senha_dias_expira)
|
|
|
|
|
values(%s, lower(%s), %s, %s, %s, md5(%s), %s, %s, %s, %s, %s, %s, md5(lower(%s)), %s)";
|
|
|
|
|
$query = sprintf($query, QuotedStr($userNome), QuotedStr($userLogin), QuotedStr($userMatricula), 1, $userAdm == "checked" ? 'true' : 'false', QuotedStr($userPassword), $userSuper == "checked" ? 'true' : 'false', $userAgente == "checked" ? 'true' : 'false', QuotedStr($userEmail), $userStatus == "checked" ? 'true' : 'false', $penalidade, QuotedStr($dacPadraoSel), QuotedStr($userLogin), $userExpiraSenha);
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$ret = IncluiAgenteFile($dbcon);
|
|
|
|
|
$result = strtoupper($ret) == "OK";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Inclui usuario como grupo.
|
|
|
|
|
*/
|
|
|
|
|
$query = sprintf("insert into pbx_grupo(gp_nome, gp_status, user_id, gp_user) select apelido, 1, id, id from pbx_usuarios where apelido = %s", QuotedStr($userLogin));
|
|
|
|
|
$result = $result && pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Insere o usuario no mesmo grupo criado com seu login.
|
|
|
|
|
*/
|
|
|
|
|
$query = sprintf("insert into pbx_grupo_usuario(user_id, gp_id) select user_id, gp_id from pbx_grupo where gp_nome = %s", QuotedStr($userLogin));
|
|
|
|
|
$result = $result && pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Se o dac for selecionado no cadastro do usuario, o mesmo sera atribuido para o proprio usuario.
|
|
|
|
|
*/
|
|
|
|
|
if ($dacPadraoSel) {
|
|
|
|
|
$query = sprintf("insert into pbx_fila_grupos(id, gp_id) select $dacPadraoSel, gp_id from pbx_grupo where gp_nome = %s", QuotedStr($userLogin));
|
|
|
|
|
$result = $result && pg_query($dbcon, $query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Finaliza a transacao.
|
|
|
|
|
*/
|
|
|
|
|
if ($result) {
|
|
|
|
|
$result = pg_query($dbcon, "commit");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$limpaVar = 1;
|
|
|
|
|
$acaoUser = 'Incluir';
|
|
|
|
|
$idUser = 0;
|
|
|
|
|
$userMatricula = GetMatriculaAgente($dbcon) - 1;
|
|
|
|
|
$msg = "alert('Usu<EFBFBD>rio: $userLogin matricula: $userMatricula, incluido com sucesso');";
|
|
|
|
|
$userMatricula = GetMatriculaAgente($dbcon);
|
|
|
|
|
$userPassword = "1234";
|
|
|
|
|
$penalidade = 0;
|
|
|
|
|
$jsStartup[] = "window.opener.ResetForm();";
|
|
|
|
|
$jsStartup[] = 'window.close()';
|
|
|
|
|
} else {
|
|
|
|
|
$erroBd = @pg_last_error($dbcon);
|
|
|
|
|
@pg_query($dbcon, "rollback");
|
|
|
|
|
$acaoUser = 'Incluir';
|
|
|
|
|
$msg = sprintf("alert('%s');", "A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!");
|
|
|
|
|
}
|
|
|
|
|
} else if (empty($msg) && ($_POST["btGravar"] == 'Alterar')) {
|
|
|
|
|
$acaoUser = 'Alterar';
|
|
|
|
|
$msgMatricula = "disabled";
|
|
|
|
|
$msgLogin = "disabled";
|
|
|
|
|
$userLogin = strtolower($_POST["userLoginH"]);
|
|
|
|
|
$userMatricula = $_POST["userMatriculaH"];
|
|
|
|
|
$userExpiraSenha = $_POST["userExpiraSenha"];
|
|
|
|
|
$updSenha = DEFAULT_MASC_PASSWORD !== $userPassword;
|
|
|
|
|
$result = @pg_query($dbcon, "begin");
|
|
|
|
|
|
|
|
|
|
$query = "update pbx_usuarios
|
|
|
|
|
set nome = %s,
|
|
|
|
|
%s
|
|
|
|
|
email = %s,
|
|
|
|
|
status = %s,
|
|
|
|
|
penalidade = %s,
|
|
|
|
|
dac_padrao = %s,
|
|
|
|
|
senha_dias_expira = %s
|
|
|
|
|
where id = %s ";
|
|
|
|
|
|
|
|
|
|
if ($updSenha) {
|
|
|
|
|
$updSenha = sprintf(" senha = md5(%s), ", QuotedStr($userPassword));
|
|
|
|
|
$queryAlt = sprintf("UPDATE pbx_controle_acesso SET acs_erro = 2 WHERE acs_login = '%s' AND acs_erro = 1;", $userLogin);
|
|
|
|
|
@pg_query($dbcon, $queryAlt);
|
|
|
|
|
} else {
|
|
|
|
|
$updSenha = '';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$query = sprintf($query, QuotedStr($userNome), $updSenha, QuotedStr($userEmail), $userStatus == "checked" ? 'true' : 'false', $penalidade, $dacPadraoSel, $userExpiraSenha, $idUser);
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Se o dac for selecionado no cadastro do usuario, o mesmo sera atribuido para o proprio usuario.
|
|
|
|
|
*/
|
|
|
|
|
if ($dacPadraoSel && !GetNotExistsDacUser($dacPadraoSel, $idUser)) {
|
|
|
|
|
$query = sprintf("insert into pbx_fila_grupos(id, gp_id) select $dacPadraoSel, gp_id from pbx_grupo where gp_nome = %s", QuotedStr($userLogin));
|
|
|
|
|
$result = $result && pg_query($dbcon, $query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$ret = IncluiAgenteFile($dbcon);
|
|
|
|
|
$result = strtoupper($ret) == "OK";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$result = @pg_query($dbcon, "commit");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$acaoUser = 'Alterar';
|
|
|
|
|
$jsStartup[] = "window.opener.ResetForm();";
|
|
|
|
|
$msg = "alert('Opera<EFBFBD><EFBFBD>o realizada com sucesso!');";
|
|
|
|
|
$jsStartup[] = 'window.close()';
|
|
|
|
|
} else {
|
|
|
|
|
$msgAgt = trim($msgAgt);
|
|
|
|
|
$erroBd = @pg_last_error($dbcon);
|
|
|
|
|
// $msDisp = empty($msgAgt) ? ("A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!" . ($erroBd ? " Erro: " . $erroBd : "")) : $msgAgt;
|
|
|
|
|
$msg = sprintf("alert('%s');", (empty($msgAgt) ? "A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!" : $msgAgt));
|
|
|
|
|
@pg_query($dbcon, "rollback");
|
|
|
|
|
$acaoUser = 'Alterar';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$jsStartup[] = $msg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$smarty->assign("userExpiraSenha", $userExpiraSenha ? $userExpiraSenha : 0);
|
|
|
|
|
$smarty->assign("userNome", $limpaVar ? "" : $userNome);
|
|
|
|
|
$smarty->assign("userLogin", $limpaVar ? "" : $userLogin);
|
|
|
|
|
$smarty->assign("msgLogin", $limpaVar ? "" : $msgLogin);
|
|
|
|
|
$smarty->assign("userMatricula", $userMatricula);
|
|
|
|
|
$smarty->assign("msgMatricula", $msgMatricula);
|
|
|
|
|
$smarty->assign("userPassword", $userPassword);
|
|
|
|
|
$smarty->assign("userEmail", $limpaVar ? "" : $userEmail);
|
|
|
|
|
//$smarty->assign("userAgente", $limpaVar ? "" : $userAgente);
|
|
|
|
|
//$smarty->assign("userSuper", $limpaVar ? "" : $userSuper);
|
|
|
|
|
//$smarty->assign("userAdm", $limpaVar ? "" : $userAdm);
|
|
|
|
|
$smarty->assign("habAdm", IsAdmin() ? "" : "disabled");
|
|
|
|
|
|
|
|
|
|
$smarty->assign("userStatus", $limpaVar ? "checked" : $userStatus);
|
|
|
|
|
$smarty->assign("acaoUser", $acaoUser);
|
|
|
|
|
$smarty->assign("idUser", $idUser);
|
|
|
|
|
$smarty->assign("dacPadrao", $dacPadrao);
|
|
|
|
|
$smarty->assign("penalidade", $penalidade ? $penalidade : "0");
|
|
|
|
|
|
|
|
|
|
$jsJQuery[] = "\$('#userLogin').change(function(){limpaEspaco(this);}) ";
|
|
|
|
|
$jsJQuery[] = "\$('#penalidade').keyup(function(){somenteNumeros(this);}) ";
|
|
|
|
|
|
|
|
|
|
GetTemplate($smarty, 'seguranca/usuario.tpl');
|
|
|
|
|
|
|
|
|
|
function GetMatriculaAgente($db) {
|
|
|
|
|
$query = "select max(matricula) from pbx_usuarios";
|
|
|
|
|
$result = @pg_query($db, $query);
|
|
|
|
|
if ($result)
|
|
|
|
|
$dados = @pg_fetch_array($result);
|
|
|
|
|
return ($dados[0] + 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ValidaPassword($password) {
|
|
|
|
|
$match = preg_match_all('/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$*&@#_!.%?])[0-9a-zA-Z$_*&@#]{8,}$/', $password);
|
|
|
|
|
|
|
|
|
|
if (empty($password) || !$match) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function VerificaEmailExists($dbcon, $email) {
|
|
|
|
|
$query = "select email from pbx_usuarios where email = '$email';";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
$res = pg_fetch_assoc($result);
|
|
|
|
|
return $res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getEmailUser($dbcon, $email, $id = null) {
|
|
|
|
|
$query = "SELECT count(*) FROM pbx_usuarios WHERE email = '$email' ";
|
|
|
|
|
if ($id) {
|
|
|
|
|
$query .= " AND id <> $id ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
$res = pg_fetch_assoc($result);
|
|
|
|
|
|
|
|
|
|
if ($res['count']) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|