permission("utenti",$_POST["codice_utente"])) && tokenVerify()) { $ruoli = utente::ruoli(); $bind = []; $bind[":codice_utente"] = $_POST["codice_utente"]; $bind[":codice_collaborazione"] = $_POST["codice"]; $sql = "SELECT r_collaborazioni.* FROM r_collaborazioni JOIN b_enti ON r_collaborazioni.codice_ente = b_enti.codice"; $sql = "{$sql} WHERE r_collaborazioni.codice_utente = :codice_utente AND r_collaborazioni.codice = :codice_collaborazione"; if (!empty($_SESSION["ente"])) { $bind[":codice_ente"] = $_SESSION["ente"]->codice; $sql = "{$sql} AND r_collaborazioni.codice_ente IN (SELECT codice FROM b_enti WHERE codice = :codice_ente OR sua = :codice_ente)"; if ($_SESSION["utente"]->gerarchia >= 9) { $sql = "{$sql} AND r_collaborazioni.codice_ente NOT IN (SELECT codice FROM b_enti WHERE sua = :codice_ente AND (dominio IS NOT NULL AND dominio <> '' AND attivo = 'S'))"; } } $collaborazioni = $pdo->go($sql,$bind); if ($collaborazioni->rowCount() == 1) { Utente::removeLock($_POST["codice_utente"]); $collaborazione = $collaborazioni->fetch(PDO::FETCH_ASSOC); $gerarchia = $ruoli[$collaborazione["gruppo"]]["gerarchia"] ?? 0; if ($_SESSION["utente"]->gerarchia <= $gerarchia) { $collaborazione["limiti"] = ""; if (!empty($_POST["limite"]) && !isset($_POST["rimuoviLimiti"])) { $collaborazione["limiti"] = json_encode($_POST["limite"]); } $salva = new salva(); $salva->debug = false; $salva->nome_tabella = "r_collaborazioni"; $salva->operazione = "UPDATE"; $salva->oggetto = $collaborazione; $salva->save(); $error = false; $moduli = Modulo::getModuli(["attivo"=>true,"all_utente"=>false]); $permissions = []; $delete = $pdo->prepare("DELETE FROM r_permessi_collaborazioni WHERE cod_relazione = :codice AND id_modulo = :id_modulo "); $create = $pdo->prepare("INSERT INTO r_permessi_collaborazioni (cod_relazione,id_modulo) VALUES (:codice,:modulo)"); if (!empty($_POST["permission"])) { $permissions = array_keys($_POST["permission"]); } $codice = $collaborazione["codice"]; foreach($moduli AS $id_modulo => $modulo) { $delete->bindValue(":codice",$codice); $delete->bindValue(":id_modulo",$id_modulo); $delete->execute(); ob_start(); $delete->debugDumpParams(); $sql = ob_get_clean(); $sql = get_string_between($sql,"Sent SQL: ","Key:"); $sql = get_string_between($sql,"]","Params:"); scriviLog("r_permessi_collaborazioni","DELETE",$sql); if (in_array($id_modulo, $permissions) !== false) { $create->bindValue(":codice",$codice); $create->bindValue(":modulo",$id_modulo); $create->execute(); ob_start(); $create->debugDumpParams(); $sql = ob_get_clean(); $sql = get_string_between($sql,"Sent SQL: ","Key:"); $sql = get_string_between($sql,"]","Params:"); scriviLog("r_permessi_collaborazioni","INSERT",$sql); if($id_modulo == "verifica-art-80") { $ente = $pdo->go("SELECT * FROM b_enti WHERE codice = :codice", [":codice" => $collaborazione["codice_ente"]])->fetch(PDO::FETCH_ASSOC); $articolo80 = Articolo80::init($ente); if(! empty($articolo80) && is_a($articolo80, "Articolo80")) { $pdo->go("DELETE FROM b_permessi_verifiche_articolo_80 WHERE codice_collaborazione = :codice_collaborazione", [":codice_collaborazione" => $collaborazione["codice"]]); if (! empty($_POST["classi_documentali_art80"]) && ! isset($_POST["rimuoviLimitiArt80"])) { $available = array_column($articolo80->documenti, "uuid"); $sth = $pdo->prepare("INSERT INTO b_permessi_verifiche_articolo_80 (`codice_collaborazione`, `classe_documentale`, `utente_modifica`, `timestamp`) VALUES (:codice_collaborazione, :classe_documentale, :utente_modifica, NOW())"); $sth->bindValue(":codice_collaborazione", $collaborazione["codice"]); $sth->bindValue(":utente_modifica", $_SESSION["utente"]->codice); foreach ($_POST["classi_documentali_art80"] as $classe_documentale) { if(in_array($classe_documentale, $available)) { $sth->bindValue(":classe_documentale", $classe_documentale); $sth->execute(); } } } } } } } ?> swal({title:js_dict["success-msg"],type:"success"}).then(function() { window.location.reload(); });