0 and b.gp_id = %s', $fieldsForm['gp_id']); if (RegistroInc($dbcon, $query)) { throw new Exception('Operação inválida, "Usuários" só podem ser vinculados a "Grupos"!'); } if ($result) { $cont = 0; foreach ($fieldsForm['user_id'] as $idUser) { /* * Valida se o usuario ja nã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ção nã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() || IsUserAdmin() ? 1 : 0; $cont = 0; foreach ($fieldsForm['user_inc'] as $idUser) { $query = "delete from pbx_grupo_usuario" . "\nwhere user_id = '%s'" . "\nand gp_id = '%s'" . "\nand user_id <> (select id from pbx_usuarios where apelido = 'administrador')" // Não permite remover o administrador. . "and not exists(select '' from pbx_grupo where gp_id = '%s' and gp_user = case when(%s=0)then '%s' else -1 end)\n"; //Nao permite o usuario remover o pai do grupo(quem criou). $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ção nã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 = '" : "\n\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 = '\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ário: %s-%s já esta incluido no grupo %s da LGDP!", $row["matricula"], $row["nome"], $row["gp_nome"]); } ?>