Пример #1
0
function gravarPermissoes()
{
    include '../dao/ConnectionHolder.php';
    $idUsuario = $_POST["idUsuario"];
    if (!$idUsuario) {
        finalize("idUsuario não fornecido!");
    }
    $idList = $_POST["list"];
    if (!$idList) {
        finalize("Lista de permissões vazia!");
    }
    try {
        $connection = ConnectionHolder::getConnection();
        // PROBLEMA!!
        // O postgres não trabalha com o conceito de transação, commit e rollback,
        // ao invés disso, deve ser enviada uma query, sendo todo o script sql,
        // e será executado todo, ou nada.
        // Fonte: http://stackoverflow.com/questions/9704557/php-pgsql-driver-and-autocommit
        // Apaga as permissoes existentes para o usuário
        $query = "DELETE FROM permissoes WHERE idusuario = " . $idUsuario . "; ";
        // Insere as operações recebidas por POST
        foreach ($idList as $id) {
            $query .= "INSERT INTO permissoes (idoperacaomodulo, idusuario) " . "VALUES (" . $id . ", " . $idUsuario . "); ";
        }
        $resultSet = pg_query($connection, $query);
        if (!$resultSet) {
            finalize("Query error");
        }
        done();
    } catch (Exception $e) {
        finalize("Exception: " . $e->getMessage());
    }
}
Пример #2
0
 public function __construct()
 {
     try {
         $this->connection = ConnectionHolder::getConnection();
     } catch (Exception $e) {
         echo $e->getMessage();
     }
 }