Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
96 righe
5.0 KiB
96 righe
5.0 KiB
<? |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once($configPath); |
|
$error = true; |
|
if (!empty($_POST) && !empty($_SESSION["utente"]) && |
|
($_SESSION["utente"]->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(); }); |
|
<? |
|
} |
|
} |
|
} |
|
if ($error) { |
|
header('HTTP/1.0 403 Forbidden'); |
|
die(); |
|
} |
|
?>
|
|
|