|
|
<?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; |
|
|
} |
|
|
|
|
|
?>
|
|
|
|