Browse Source

Ajustes na deleção do grupo, permitir a exclusao pelo administrador

1.7.12
AMARILDO PEREIRA 2 years ago
parent
commit
3d0b6d51a1
  1. 0
      projeto/base/sql/versao-1.7.11.5.sql
  2. 2
      seguranca/grupos/grupoDelete.php
  3. 15
      seguranca/grupos/grupoInsert.php
  4. 4
      seguranca/grupos/gruposUsuario.php

0
projeto/base/sql/versao-1.7.11.4.sql → projeto/base/sql/versao-1.7.11.5.sql

2
seguranca/grupos/grupoDelete.php

@ -29,7 +29,7 @@ if ($result) {
$row = @pg_fetch_row($result); $row = @pg_fetch_row($result);
$numReg = $row[0]; $numReg = $row[0];
if (($numReg == 0) || ( ($numReg == 1) && ($donoGrupo))) { if (($numReg == 0) || ( ($numReg == 1) && ($donoGrupo || IsUserAdmin() || IsAdmin()))) {
$query = "begin"; $query = "begin";
$result = @pg_query($dbcon, $query); $result = @pg_query($dbcon, $query);
if ($result) { if ($result) {

15
seguranca/grupos/grupoInsert.php

@ -47,12 +47,17 @@ if ($formAction == FORM_NEW) {
$idGrupo = $row[0]; $idGrupo = $row[0];
$idUser = GetIdUser(); $idUser = GetIdUser();
/*
* Usuario administrador não é inserido no grupo.
*/
if ($result && !IsUserAdmin()) {
$query = " insert into pbx_grupo_usuario(user_id, gp_id)values(%s, %s)";
$query = sprintf($query, $idUser, $idGrupo);
$result = @pg_query($dbcon, $query);
}
$query = " insert into pbx_grupo_usuario(user_id, gp_id)values(%s, %s)"; if ($result) {
$query = sprintf($query, $idUser, $idGrupo);
$result = @pg_query($dbcon, $query);
if ($result && !IsSysAdmin()) {
$query = " insert into pbx_grupo_usuario(user_id, gp_id)values(%s, %s)"; $query = " insert into pbx_grupo_usuario(user_id, gp_id)values(%s, %s)";
$idUser = GetIdSysAdmin($dbcon); $idUser = GetIdSysAdmin($dbcon);
$query = sprintf($query, $idUser, $idGrupo); $query = sprintf($query, $idUser, $idGrupo);

4
seguranca/grupos/gruposUsuario.php

@ -71,7 +71,7 @@ if (isset($fieldsForm['btIncAgente'])) {
$result = @pg_query($dbcon, 'begin'); $result = @pg_query($dbcon, 'begin');
if ($result) { if ($result) {
$userAdmin = IsAdmin() ? 1 : 0; $userAdmin = IsAdmin() || IsUserAdmin() ? 1 : 0;
$cont = 0; $cont = 0;
foreach ($fieldsForm['user_inc'] as $idUser) { foreach ($fieldsForm['user_inc'] as $idUser) {
$query = "delete from pbx_grupo_usuario" $query = "delete from pbx_grupo_usuario"
@ -80,7 +80,7 @@ if (isset($fieldsForm['btIncAgente'])) {
. "\nand user_id <> (select id from pbx_usuarios where apelido = 'administrador')" // Não permite remover o administrador. . "\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). . "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); $query = sprintf($query, $idUser, $fieldsForm['gp_id'], $fieldsForm['gp_id'], $userAdmin, $idUser);
$result = @pg_query($dbcon, $query); $result = @pg_query($dbcon, $query);
if (!$result) if (!$result)
break; break;

Loading…
Cancel
Save