|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
require('funcoesFormulario.php');
|
|
|
|
|
$templateName = 'seguranca/grupos/gruposUsuario.htm';
|
|
|
|
|
//define tipo de formulario
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
$upload = 1;
|
|
|
|
|
|
|
|
|
|
$fieldsForm = array();
|
|
|
|
|
$fieldsForm = IsPostBack() ? $_POST : $_GET;
|
|
|
|
|
|
|
|
|
|
if (isset($fieldsForm['gp_id']) && (strpos($fieldsForm['gp_id'], '|') !== false)) {
|
|
|
|
|
$search = strpbrk($fieldsForm['gp_id'], '|');
|
|
|
|
|
$fieldsForm['gp_id'] = str_replace($search, '', $fieldsForm['gp_id']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$isLgpd = $fieldsForm["gp_lgpd"];
|
|
|
|
|
|
|
|
|
|
//Id da campanha
|
|
|
|
|
$idCampanha = $fieldsForm['cmp_id'];
|
|
|
|
|
$fieldsForm['erro'] = "";
|
|
|
|
|
|
|
|
|
|
if (isset($fieldsForm['btIncAgente'])) {
|
|
|
|
|
if (empty($fieldsForm['user_id'])) {
|
|
|
|
|
$fieldsForm['erro'] = fmtMsg('Selecione um agente!');
|
|
|
|
|
} else {
|
|
|
|
|
try {
|
|
|
|
|
$result = @pg_query($dbcon, 'begin');
|
|
|
|
|
|
|
|
|
|
$query = sprintf('select count(*) from pbx_grupo_usuario a, pbx_grupo b where b.gp_id = a.gp_id and b.user_id > 0 and b.gp_id = %s', $fieldsForm['gp_id']);
|
|
|
|
|
if (RegistroInc($dbcon, $query)) {
|
|
|
|
|
throw new Exception('Opera<EFBFBD><EFBFBD>o inv<EFBFBD>lida, "Usu<EFBFBD>rios" s<EFBFBD> podem ser vinculados a "Grupos"!');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$cont = 0;
|
|
|
|
|
foreach ($fieldsForm['user_id'] as $idUser) {
|
|
|
|
|
/*
|
|
|
|
|
* Valida se o usuario ja n<EFBFBD>o pertence a outro grupo lgpd.
|
|
|
|
|
*/
|
|
|
|
|
if ($isLgpd && ($jaLgpd = JaInseridoLgps($idUser))) {
|
|
|
|
|
throw new Exception($jaLgpd);
|
|
|
|
|
}
|
|
|
|
|
$query = "insert into pbx_grupo_usuario(user_id, gp_id)values(%s, '%s')";
|
|
|
|
|
$query = sprintf($query, $idUser, $fieldsForm['gp_id']);
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
if (!$result)
|
|
|
|
|
break;
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = $result && @pg_query($dbcon, 'commit');
|
|
|
|
|
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception('A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$fieldsForm['erro'] = $cont > 1 ? fmtMsg('Agentes incluidos com sucesso!') : fmtMsg('Agente incluido com sucesso!');
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
@pg_query($dbcon, 'rollback');
|
|
|
|
|
fmtErro($e->getMessage(), pg_last_error($dbcon));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (isset($fieldsForm['btRmAgente'])) {
|
|
|
|
|
if (empty($fieldsForm['user_inc'])) {
|
|
|
|
|
$fieldsForm['erro'] = fmtMsg('Selecione um agente!');
|
|
|
|
|
} else {
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
$result = @pg_query($dbcon, 'begin');
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$userAdmin = IsAdmin() ? 1 : 0;
|
|
|
|
|
$cont = 0;
|
|
|
|
|
foreach ($fieldsForm['user_inc'] as $idUser) {
|
|
|
|
|
$query = "delete from pbx_grupo_usuario where user_id = '%s' and gp_id = '%s' and not exists(select * from pbx_grupo where gp_id = '%s' and gp_user = case when(%s=0)then '%s' else -1 end)";
|
|
|
|
|
$query = sprintf($query, $idUser, $fieldsForm['gp_id'], $fieldsForm['gp_id'], $userAdmin, $idUser);
|
|
|
|
|
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
if (!$result)
|
|
|
|
|
break;
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = $result && @pg_query($dbcon, 'commit');
|
|
|
|
|
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception('A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$fieldsForm['erro'] = $cont > 1 ? fmtMsg('Agentes removidos com sucesso!') : fmtMsg('Agente removido com sucesso!');
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
@pg_query($dbcon, 'rollback');
|
|
|
|
|
fmtErro($e->getMessage(), pg_last_error($dbcon));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$fieldsForm['user_id'] = GetUser($dbcon, $fieldsForm['gp_id'], $fieldsForm['user_id'], 8, "user_id", "240", 0, 1);
|
|
|
|
|
$fieldsForm['listaGrupo'] = GetGrupoUser($dbcon, $fieldsForm['gp_id'], 0, 8, "user_inc", "240", 0, 1);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Atualiza templates templates
|
|
|
|
|
*/
|
|
|
|
|
foreach ($fieldsForm as $key => $value) {
|
|
|
|
|
$smarty->assign($key, $value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GetTemplate($smarty, $templateName);
|
|
|
|
|
|
|
|
|
|
function GetGrupoUser($dbcon, $codGp, $codSel, $size = 1, $nomeLista = "user_id", $tamPx = "200", $desabilita = 0, $multiple = 0) {
|
|
|
|
|
if (strpos($codGp, '|') !== false) {
|
|
|
|
|
$codG = explode('|', $codGp);
|
|
|
|
|
$codGp = $codG[0];
|
|
|
|
|
}
|
|
|
|
|
$query = "select b.id, b.nome || (case when( (select count(*) from pbx_grupo where gp_id = a.gp_id and gp_user = a.user_id) > 0)then '*' else '' end) as apelido, b.matricula, a.gp_id from pbx_grupo_usuario a, pbx_usuarios b where b.id = a.user_id and a.gp_id = $codGp order by 2";
|
|
|
|
|
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
$cont = 0;
|
|
|
|
|
$sel = "";
|
|
|
|
|
|
|
|
|
|
$lista = '<select name="%s%s" id="%s" size="%s" style="width:%spx;" %s>%s';
|
|
|
|
|
|
|
|
|
|
$lista = sprintf($lista, $nomeLista, ($multiple ? "[]" : ""), $nomeLista, $size, $tamPx, ($multiple ? 'multiple="multiple"' : ''), "\n");
|
|
|
|
|
|
|
|
|
|
while (($row = @pg_fetch_array($result))) {
|
|
|
|
|
$cod = $row["id"];
|
|
|
|
|
$sel = ($codSel == $cod) ? "selected" : "";
|
|
|
|
|
|
|
|
|
|
$desc = $row["apelido"] . "-" . $row["matricula"];
|
|
|
|
|
$lista .= "<option value=\"$cod\" $sel>$desc</option>\n";
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
$lista .= $cont ? "</select>" : "<option value=\"0\" selected>-</option>\n</select>\n";
|
|
|
|
|
return $lista;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetUser($dbcon, $codGrupo, $codSel, $size = 1, $nomeLista = "user_id", $tamPx = "200", $desabilita = 0, $multiple = 0) {
|
|
|
|
|
$sel = "";
|
|
|
|
|
if (strpos($codGrupo, '|') !== false) {
|
|
|
|
|
$codG = explode('|', $codGrupo);
|
|
|
|
|
$codGrupo = $codG[0];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$query = "select id, nome, apelido, matricula
|
|
|
|
|
from pbx_usuarios
|
|
|
|
|
where status = true
|
|
|
|
|
and delete_ = 0
|
|
|
|
|
and id not in(select user_id from pbx_grupo_usuario where gp_id = '$codGrupo')
|
|
|
|
|
and upper(apelido) <> 'ADMIN'
|
|
|
|
|
and upper(apelido) <> 'SINCCONTASENHA'
|
|
|
|
|
order by 2 ";
|
|
|
|
|
$result = @pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
$lista = '<select name="%s%s" id="%s" size="%s" style="width:%spx" %s >%s';
|
|
|
|
|
$lista = sprintf($lista, $nomeLista, ($multiple ? '[]' : ''), $nomeLista, $size, $tamPx, ($multiple ? 'multiple="multiple"' : ''), "\n");
|
|
|
|
|
|
|
|
|
|
while (($row = @pg_fetch_array($result))) {
|
|
|
|
|
$cod = $row["id"];
|
|
|
|
|
$desc = $row["nome"] . "-" . $row["matricula"];
|
|
|
|
|
$sel = ($codSel == $cod) ? "selected" : "";
|
|
|
|
|
|
|
|
|
|
$lista .= "<option value=\"$cod\" $sel>$desc</option>\n";
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
$lista .= "</select>\n";
|
|
|
|
|
return $lista;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function JaInseridoLgps($userId) {
|
|
|
|
|
|
|
|
|
|
$query = "select c.id, c.matricula, c.nome, b.gp_id, b.gp_nome
|
|
|
|
|
from pbx_grupo_usuario a, pbx_grupo b, pbx_usuarios c
|
|
|
|
|
where b.gp_id = a.gp_id
|
|
|
|
|
and c.id = a.user_id
|
|
|
|
|
and b.gp_nome ilike 'LGPD_%_%_%'
|
|
|
|
|
and a.user_id = '{$userId}';";
|
|
|
|
|
|
|
|
|
|
$result = @pg_query($query);
|
|
|
|
|
|
|
|
|
|
if (!pg_num_rows($result)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$row = pg_fetch_array($result);
|
|
|
|
|
return sprintf("O usu<EFBFBD>rio: %s-%s j<EFBFBD> esta incluido no grupo %s da LGDP!", $row["matricula"], $row["nome"], $row["gp_nome"]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|