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.
307 righe
17 KiB
307 righe
17 KiB
<? |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once($configPath); |
|
if (!empty($_SESSION["utente"]) && isset($_GET["codice"]) && ($_SESSION["utente"]->permission("utenti",$_GET["codice"]) || $_SESSION["utente"]->codice == $_GET["codice"])) { |
|
$bind = array(); |
|
$bind[":codice"] = $_GET["codice"]; |
|
$sql = "SELECT b_utenti.* FROM b_utenti WHERE b_utenti.codice = :codice "; |
|
$ris_utenti = $pdo->go($sql,$bind); |
|
if (isset($ris_utenti) && $ris_utenti->rowCount() === 1) { |
|
$record = $ris_utenti->fetch(PDO::FETCH_ASSOC); |
|
} else if (empty($_GET["codice"]) && $_SESSION["utente"]->permission("utenti")) { |
|
$record = get_campi("b_utenti"); |
|
if (isset($_SESSION["ente"])) { $record["ruolo"] = "USR"; } |
|
} |
|
if (!empty($record)) { |
|
$ruoli = utente::ruoli(); |
|
$gerarchia = $ruoli[$record["ruolo"]]["gerarchia"] ?? 0; |
|
$_change_cf = true; |
|
if(($_SESSION["utente"]->authenticationLevel == 2 || $_SESSION["utente"]->publicSSO == "SPID") && $record["codice"] == $_SESSION["utente"]->codice) { $_change_cf = false; } |
|
if ($_SESSION["utente"]->gerarchia <= $gerarchia || $record["codice"] == $_SESSION["utente"]->codice || empty($record["codice"])) { |
|
if ($record["codice"] == $_SESSION["utente"]->codice) { |
|
?> |
|
<div class="text-right p-3"> |
|
<? |
|
if (!empty($record["spidCode"])) { |
|
?> |
|
<button type="button" class="btn btn-danger" onClick="eliminaP('<?= $record["codice"] ?>','profilo/spid');"><span class="fa fa-times"></span> <?= __("Disattiva autenticazione tramite SPID") ?></button> |
|
<? |
|
} else { |
|
if (isset($_SESSION["ente"]) && $_SESSION["ente"]->checkSPID()) { |
|
?> |
|
<?= __("Effettua l'accesso con le tue credenziali SPID per collegare il tuo account e utilizzarle nei prossimi accessi alla piattaforma") ?> |
|
<div class="mt-1"> |
|
<? SpidSA::printLoginButton(); ?> |
|
</div> |
|
<? |
|
} |
|
} |
|
?> |
|
</div> |
|
<? |
|
} |
|
?> |
|
<script src="/src/js/extra/password-generator.js"></script> |
|
<form rel="validate" method="post" action="/backend/utenti/save.php" autocomplete="false" id="edit-form"> |
|
<input id="token" type="hidden" name="token" value="<?= tokenGen() ?>"> |
|
<input id="codice" type="hidden" name="codice" value="<?= $record["codice"] ?>"> |
|
<div class="card mb-3"> |
|
<div class="card-header"> |
|
<h3 class="mb-0 font-weight-bold"><?= __("Credenziali") ?></h3> |
|
</div> |
|
<div class="card-body"> |
|
<div class="row"> |
|
<div class="col-12 col-lg-5"> |
|
<div class="form-group"> |
|
<label for="email"><?= __("Indirizzo e-mail") ?>*</label> |
|
<input name="email" data-codice="<?= $record["codice"] ?>" type="text" class="form-control" id="email" value="<?= $record["email"] ?>" title="<?= __("Indirizzo e-mail") ?>" rel="S;2;100;E;/profilo/check.php"> |
|
</div> |
|
</div> |
|
<div class="col-12 col-lg-5"> |
|
<div class="form-group"> |
|
<label for="password"><?= __("Password") ?></label> |
|
<? if (empty($record["codice"])) { |
|
$rel = "S;8;32;P;check-password;="; |
|
$rel_check = "S;8;32;P"; |
|
$disabled = ""; |
|
} else { ?> |
|
<div class="input-group"> |
|
<div class="input-group-prepend"> |
|
<div class="input-group-text"> |
|
<input type="checkbox" id="edit-password" onchange="change_password();"></span> |
|
</div> |
|
</div> |
|
<? |
|
$rel = "N;8;32;P"; |
|
$rel_check = "N;8;32;P"; |
|
$disabled = "disabled"; |
|
} |
|
?> |
|
<input name="password" type="password" class="form-control" id="password" title="<?= __("Password") ?>" rel="<?= $rel ?>" <?= $disabled ?>> |
|
<? if (!empty($record["codice"])) { ?></div><? } ?> |
|
</div> |
|
<div class="form-group"> |
|
<input type="password" class="form-control" <? if (!empty($record["codice"])) { ?>style="display:none"<? } ?> id="check-password" title="<?= __("Ripeti") ?> <?= __("password") ?>" rel="<?= $rel_check ?>" <?= $disabled ?>> |
|
</div> |
|
<pre id="suggest" class="p-1 bg-success text-white" style="display:none"></pre> |
|
<button type="button" class="btn-block btn-sm" onClick="$('#suggest').html(customPassword()).slideDown(); return false;"><?= __("suggerisci") ?></button> |
|
</div> |
|
<div class="col-12 col-lg-2"> |
|
<div class="form-group"> |
|
<label for="attivo"><?= __("Attivo") ?>*</label> |
|
<select name="attivo" id="attivo" title="<?= __("Attivo") ?>" rel="S;1;1;A"> |
|
<option value=""><?= __("Seleziona") ?>...</option> |
|
<option value="S"><?= __("Si") ?></option> |
|
<option value="N"><?= __("No") ?></option> |
|
</select> |
|
<? if (!empty($record["attivo"])) { ?> |
|
<script> |
|
$("#attivo").val('<?= $record["attivo"] ?>'); |
|
</script> |
|
<? } ?> |
|
</div> |
|
</div> |
|
</div> |
|
<? if (empty($_SESSION["ente"]) && $_SESSION["utente"]->gerarchia < 9) { ?> |
|
<div class="form-group"> |
|
<label for="ruolo"><?= __("Ruolo") ?>*</label> |
|
<select class="form-control" name="ruolo" id="ruolo" onChange="$('#form-gruppo_consulenza').slideUp(); $('#gruppo_consulenza').attr('rel','N;0;0;N'); if ($(this).val() == 'USR') { $('#card-collaborazioni').slideDown(); } else { $('#card-collaborazioni').slideUp(); if ($(this).val() == 'CON') { $('#form-gruppo_consulenza').slideDown(); $('#gruppo_consulenza').attr('rel','S;0;0;N'); }}" rel="S;1;0;A" title="<?= __("Ruolo") ?>"> |
|
<? |
|
foreach($ruoli AS $id_ruolo => $ruolo) { |
|
if ($ruolo["admin"] && $ruolo["gerarchia"] >= $_SESSION["utente"]->gerarchia) { |
|
?> |
|
<option value="<?= $id_ruolo ?>"><?= $ruolo["nome"] ?></option> |
|
<? |
|
} |
|
} |
|
?> |
|
</select> |
|
<? if (isset($record["ruolo"])) { ?> |
|
<script> |
|
$("#ruolo").val('<?= $record["ruolo"] ?>'); |
|
</script> |
|
<? } ?> |
|
</div> |
|
<div class="form-group" id="form-gruppo_consulenza" <?= $record["ruolo"] == "CON" ? "" : "style='display:none'" ?>> |
|
<label for="gruppo_consulenza"><?= __("Gruppo consulenza") ?>*</label> |
|
<select name="gruppo_consulenza" id="gruppo_consulenza" title="<?= __("Gruppo consulenza") ?>" rel="<?= $record["ruolo"] == "CON" ? "S" : "N'" ?>;0;0;N" class="form-control"> |
|
<option value="0">STUDIO AMICA</option> |
|
<? |
|
$sql = "SELECT * FROM b_gruppi_consulenza WHERE 1 ORDER BY denominazione "; |
|
$ris = $pdo->go($sql); |
|
if ($ris->rowCount() > 0) { |
|
while ($rec = $ris->fetch(PDO::FETCH_ASSOC)) { |
|
echo "<option value=\"" . $rec["codice"] . "\"" . (($record["gruppo_consulenza"] == $rec["codice"]) ? " selected" : "") . ">" . $rec["denominazione"] . "</option>"; |
|
} |
|
} |
|
?> |
|
</select> |
|
</div> |
|
<? } ?> |
|
</div> |
|
</div> |
|
<? if ($_SESSION["utente"]->gerarchia <= 10) { ?> |
|
<div class="card mb-3" <?= ($record["ruolo"] != "USR") ? 'style="display:none"' : ""?> id="card-collaborazioni"> |
|
<div class="card-header"> |
|
<h3 class="mb-0 font-weight-bold"><?= __("Collaborazioni") ?></h3> |
|
</div> |
|
<div class="card-body m-0 p-0" id="body-collaborazioni"> |
|
<? |
|
$bind = []; |
|
$bind[":codice_utente"] = $record["codice"]; |
|
$sql = "SELECT * FROM r_collaborazioni WHERE codice_utente = :codice_utente "; |
|
if (!empty($_SESSION["ente"])) { |
|
$bind[":codice_ente"] = $_SESSION["ente"]->codice; |
|
$sql .= " AND codice_ente IN (SELECT codice FROM b_enti WHERE codice = :codice_ente OR sua = :codice_ente)"; |
|
if ($_SESSION["utente"]->gerarchia > 9) { |
|
if (!$_SESSION["utente"]->fromHere()) { |
|
$bind[":codice_ente"] = $_SESSION["utente"]->codice_ente; |
|
} |
|
$sql .= " AND 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() > 0) { |
|
while($collaborazione = $collaborazioni->fetch(PDO::FETCH_ASSOC)) { |
|
include(__DIR__."/collaborazione.php"); |
|
} |
|
} |
|
?> |
|
</div> |
|
<div class="card-footer"> |
|
<button type="button" class="btn btn-block btn-info" onclick="aggiungi('/backend/utenti/collaborazione.php?codice=<?= $record["codice"] ?>','#body-collaborazioni');return false;" > Aggiungi collaborazione</button> |
|
</div> |
|
</div> |
|
<? } ?> |
|
<? if ($record["codice"] == $_SESSION["utente"]->codice) { ?> |
|
<div class="card mb-3"> |
|
<div class="card-header"> |
|
<h3 class="mb-0 font-weight-bold"><?= __("Autenticazione a due fattori") ?></h3> |
|
</div> |
|
<div class="card-body"> |
|
<? if (!empty($record["twoFactor_token"])) { ?> |
|
<div class="alert alert-success text-center"> |
|
<span class="fa fa-check-circle fa-2x"></span><br> |
|
<?= __("Attiva") ?> |
|
</div> |
|
<button type="button" class="btn btn-block btn-danger" onClick="eliminaP('<?= $record["codice"] ?>','profilo/2fa');"><span class="fa fa-times"></span> <?= __("Disattiva autenticazione a due fattori") ?></button> |
|
<? } else { ?> |
|
<div class="alert alert-warning text-center"> |
|
<span class="fa fa-exclamation-circle fa-2x"></span><br> |
|
<?= __("Disattiva") ?> |
|
</div> |
|
<button type="button" class="btn btn-block btn-success" onClick="showModalWithURL('/profilo/enable2FA.php');"><span class="fa fa-lock"></span> <?= __("Attiva autenticazione a due fattori") ?></button> |
|
<? } ?> |
|
</div> |
|
</div> |
|
<? |
|
$themes = getThemes(); |
|
if (count($themes) > 0) { |
|
?> |
|
<div class="card mb-3"> |
|
<div class="card-header"> |
|
<h3 class="mb-0 font-weight-bold"><?= __("Tema grafico") ?></h3> |
|
</div> |
|
<div class="card-body"> |
|
<? $selected = $record["theme"]; ?> |
|
<select name="theme" title="<?= __("Tema grafico") ?>" id="theme"> |
|
<option value="">Default</option> |
|
<? |
|
foreach($themes AS $key => $theme) { |
|
?> |
|
<option value="<?= $key ?>" <?= ($selected == $key) ? "selected" : "" ?>> |
|
<?= $theme["titolo"] ?> |
|
<? if (!empty($theme["palette"])) { |
|
if (is_array($theme["palette"])) { $theme["palette"] = "light"; } |
|
?> |
|
- <?= strtoupper($theme["palette"]) ?> |
|
<? |
|
} ?> |
|
</option> |
|
<? |
|
} |
|
?> |
|
</select> |
|
</div> |
|
</div> |
|
<? } ?> |
|
<? } ?> |
|
<div class="card mb-3"> |
|
<div class="card-header"> |
|
<h3 class="mb-0 font-weight-bold"><?= __("Anagrafica") ?></h3> |
|
</div> |
|
<div class="card-body"> |
|
<div class="row"> |
|
<div class="col-sm-4"> |
|
<div class="form-group"> |
|
<label for="cognome"><?= __("Cognome") ?>*</label> |
|
<input name="cognome" type="text" class="form-control" id="cognome" value="<?= $record["cognome"] ?>" title="<?= __("Cognome") ?>" rel="S;2;50;A"> |
|
</div> |
|
</div> |
|
<div class="col-sm-4"> |
|
<div class="form-group"> |
|
<label for="nome"><?= __("Nome") ?>*</label> |
|
<input name="nome" type="text" class="form-control" id="nome" value="<?= $record["nome"] ?>" title="<?= __("Nome") ?>" rel="S;2;50;A"> |
|
</div> |
|
</div> |
|
<div class="col-sm-4"> |
|
<div class="form-group"> |
|
<label for="cf"><?= __("codice Fiscale") ?> |
|
<?= (!$_SESSION["utente"]->isSupportoOrRoot()) ? "*" : "" ?></label> |
|
<input name="cf" <?= ! $_change_cf ? 'disabled="disabled"' : '' ?> type="text" class="form-control <?= ! $_change_cf ? 'disabled' : ''?>" id="cf" value="<?= $record["cf"] ?>" title="<?= __("codice Fiscale") ?>" rel="<?= (!$_SESSION["utente"]->isSupportoOrRoot()) ? "S" : "N" ?>;16;16;CF"> |
|
<? if (empty($record["cf"])) { |
|
alertManager::printWarningCompact(__("Inserire il dato mancante")); |
|
}?> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="form-group"> |
|
<label for="indirizzo"><?= __("Indirizzo") ?></label> |
|
<input name="indirizzo" type="text" class="form-control" id="indirizzo" value="<?= $record["indirizzo"] ?>" title="<?= __("Indirizzo") ?>" rel="N;2;255;A"> |
|
</div> |
|
<div class="row"> |
|
<div class="col-sm-8"> |
|
<div class="form-group"> |
|
<label for="citta"><?= __("Citta") ?></label> |
|
<input name="citta" class="form-control" id="citta" title="<?= __("citta") ?>" rel="N;1;255;A" value="<?= $record["citta"] ?>"> |
|
</div> |
|
</div> |
|
<div class="form-group col-sm-2"> |
|
<label for="provincia"><?= __("Provincia") ?></label> |
|
<input name="provincia" class="form-control" id="provincia" title="<?= __("Provincia") ?>" rel="N;1;255;A" value="<?= $record["provincia"] ?>"> |
|
</div> |
|
<div class="form-group col-sm-2"> |
|
<label for="cap"><?= __("CAP") ?></label> |
|
<input name="cap" class="form-control" id="cap" title="<?= __("CAP") ?>" rel="N;1;255;A" value="<?= $record["cap"] ?>"> |
|
</div> |
|
</div> |
|
<div class="row"> |
|
<div class="col-sm-6"> |
|
<div class="form-group"> |
|
<label for="telefono"><?= __("Telefono") ?></label> |
|
<input name="telefono" type="text" class="form-control" id="telefono" value="<?= $record["telefono"] ?>" title="<?= __("Telefono") ?>" rel="N;2;255;A"> |
|
</div> |
|
</div> |
|
<div class="col-sm-6"> |
|
<div class="form-group"> |
|
<label for="cellulare"><?= __("Cellulare") ?></label> |
|
<input name="cellulare" type="text" class="form-control" id="cellulare" value="<?= $record["cellulare"] ?>" title="<?= __("Cellulare") ?>" rel="N;2;20;A"> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="form-group"> |
|
<label for="pec"><?= __("PEC") ?></label> |
|
<input name="pec" type="text" class="form-control" id="pec" value="<?= $record["pec"] ?>" title="<?= __("pec") ?>" rel="N;2;255;E"> |
|
</div> |
|
</div> |
|
</div> |
|
<button type="submit" class="btn btn-block btn-success"><span class="fa fa-save"></span> <?= __("Salva") ?></button> |
|
</form> |
|
<? |
|
die(); |
|
} |
|
} |
|
} |
|
header('HTTP/1.0 403 Forbidden'); |
|
die(); |
|
?>
|
|
|