Alteração na configuração dos grupos, agora usuario que estiver no grupo administrador podera incluir e remover usuarios de grupos, mesmo que ele nao pertença ao grupo em questão.
$query = sprintf("select count(*) from pbx_grupo_usuario where gp_id = (select gp_id from pbx_grupo where gp_nome = 'ADMINISTRADOR') and user_id = '%s'", GetIdUser());
$result = @pg_query($query);
$row = @pg_fetch_row($result);
return $row[0] ? true : false;
}
}
function IsAdmin() {
function IsAdmin() {
@ -4425,7 +4428,7 @@ function PodePublicarMural($idProg, $info) {
* Usuario que esta no grupo administraor vai ter a mesma visibilidade do administrador,
* sem a necessidade de estar em outros grupos diretamente o que evita o bloqueio de audio.
*/
$idUser = GetIdUser();
$gpCompl = " and gp_id in( select gp_id from pbx_grupo_usuario where user_id = (select id FROM pbx_usuarios where apelido = 'administrador'))";
$permissoesAdmin = "\nunion\nselect gp_id, gp_nome, gp_status, user_id, 1 as gp_lgpd, case when(user_id = 0)then 0 else 1 end as ord from pbx_grupo a where user_id > '0'\n";
} else if (!IsAdmin()) {
$idUser = GetIdUser();
$idUser = GetIdUser();
$gpCompl = " and gp_id in( select gp_id from pbx_grupo_usuario where user_id = $idUser)";
$gpCompl = " and gp_id in( select gp_id from pbx_grupo_usuario where user_id = $idUser)";
}
}
@ -48,7 +57,6 @@ if (VerificaPerfilAcesso($dbcon, GetIdProgFromNomeMenu('mnLgpdAdm'))) {
$liberaLgpd = "\nunion\nselect gp_id, gp_nome, gp_status, user_id, 1 as gp_lgpd, case when(user_id = 0)then 0 else 1 end as ord from pbx_grupo a where gp_nome ilike 'LGPD_%_%_%'\n";
$liberaLgpd = "\nunion\nselect gp_id, gp_nome, gp_status, user_id, 1 as gp_lgpd, case when(user_id = 0)then 0 else 1 end as ord from pbx_grupo a where gp_nome ilike 'LGPD_%_%_%'\n";
@ -74,7 +74,11 @@ if (isset($fieldsForm['btIncAgente'])) {
$userAdmin = IsAdmin() ? 1 : 0;
$userAdmin = IsAdmin() ? 1 : 0;
$cont = 0;
$cont = 0;
foreach ($fieldsForm['user_inc'] as $idUser) {
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 = "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).