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á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á cadastrado!');"; else if (($_POST["btGravar"] != "Alterar") && ExisteRegistro($dbcon, "pbx_usuarios", "matricula", ($_POST["userMatriculaH"]))) $msg = "alert('Matrícula já cadastrada!');"; else if ($_POST["userEmail"] && !is_email($_POST["userEmail"])) $msg = "alert('Email Inválido!');"; else if (ExisteRegistro($dbcon, "pbx_usuarios", "email", (strtolower($_POST["userEmail"])), ($idUser ? "id <> {$idUser}" : ''))) $msg = "alert('O e-mail informado já foi registrado!');"; else if ($_POST["userExpiraSenha"] < 0) $msg = "alert('O tempo de expiraçã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á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ção nã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ção realizada com sucesso!');"; $jsStartup[] = 'window.close()'; } else { $msgAgt = trim($msgAgt); $erroBd = @pg_last_error($dbcon); // $msDisp = empty($msgAgt) ? ("A operação não pode ser realizada!" . ($erroBd ? " Erro: " . $erroBd : "")) : $msgAgt; $msg = sprintf("alert('%s');", (empty($msgAgt) ? "A operação nã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; } ?>