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.
379 righe
16 KiB
379 righe
16 KiB
<?php |
|
|
|
$mode = $_REQUEST['action']; |
|
switch ($mode) { |
|
case 'save': |
|
save(); |
|
break; |
|
case 'login': |
|
login(); |
|
break; |
|
case 'login_spid': |
|
login_spid(); |
|
break; |
|
case 'sendMail': |
|
sendMail(); |
|
break; |
|
case 'sendPassword': |
|
sendPassword(); |
|
break; |
|
case 'saveConsenso': |
|
saveConsenso(); |
|
break; |
|
// case 'list': |
|
// listUtenti(); |
|
// break; |
|
} |
|
|
|
function login_spid() { |
|
global $con, $LoggedAccount, $bando_setup; |
|
$return = array(); |
|
|
|
if(ATTIVA_CONTROLO_BANDO_LOGIN){ |
|
|
|
if (!$bando_setup->ControllaPeriodoPreparazione() && !$bando_setup->ControllaPeriodoClickDay() && !$bando_setup->ControllaPeriodoErogazione()) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = 'Il servizio non è attivo.'; |
|
exit(json_encode($return)); |
|
} |
|
|
|
} |
|
|
|
$con->db_transactionStart(); |
|
$transaction = false; |
|
$codFisc = trim($_REQUEST['codice_fiscale']); |
|
$uid_spid = new UID_SPID(); |
|
$uid_spid->CODICE_FISCALE = $codFisc; |
|
$resSpid = $uid_spid->Save(); |
|
if ($resSpid['esito'] == 1) { |
|
$id_accountCodiFis = Account::selectIdFromCodiceF($uid_spid->CODICE_FISCALE); |
|
if ($id_accountCodiFis['esito'] == 1) { |
|
$LoggedAccount = new Account($id_accountCodiFis['ID']); |
|
$LoggedAccount->SchedaPersona = SchedaPersona::Load(); |
|
$LoggedAccount->SPID_MOBILE_PHONE = '12456789'; |
|
$LoggedAccount->SPID_TIPO_DOCUMENTO = 'CARTA IDENTITà'; |
|
$LoggedAccount->SPID_NUMERO_DOCUMENTO = "111122223333"; |
|
$LoggedAccount->SPID_ENTE_RILASCIO = 'COMUNE'; |
|
$LoggedAccount->SPID_DATA_RILASCIO = "01/01/2020"; |
|
$LoggedAccount->SPID_DATA_SCADENZA = "31/12/2021"; |
|
$_SESSION['ID'] = $LoggedAccount->ID; |
|
$_SESSION['ControllaPeriodoPreparazione'] = $bando_setup->ControllaPeriodoPreparazione(); |
|
$_SESSION['ControllaPeriodoClickDay'] = $bando_setup->ControllaPeriodoClickDay(); |
|
$_SESSION['ControllaPeriodoErogazione'] = $bando_setup->ControllaPeriodoErogazione(); |
|
$_SESSION['LoggedAccount'] = json_encode($LoggedAccount); |
|
$transaction = true; |
|
} else { |
|
$account = new Account(); |
|
$account->CODICE_FISCALE = $codFisc; |
|
$respAccount = $account->Save(); |
|
if ($respAccount['esito'] == 1) { |
|
$LoggedAccount = $account; |
|
$LoggedAccount->SchedaPersona = SchedaPersona::Load(); |
|
$LoggedAccount->CODICE_FISCALE = $uid_spid->CODICE_FISCALE; |
|
$LoggedAccount->SPID_MOBILE_PHONE = '12456789'; |
|
$LoggedAccount->SPID_TIPO_DOCUMENTO = 'CARTA IDENTITà'; |
|
$LoggedAccount->SPID_NUMERO_DOCUMENTO = "111122223333"; |
|
$LoggedAccount->SPID_ENTE_RILASCIO = 'COMUNE'; |
|
$LoggedAccount->SPID_DATA_RILASCIO = "01/01/2020"; |
|
$LoggedAccount->SPID_DATA_SCADENZA = "31/12/2021"; |
|
$_SESSION['ID'] = $LoggedAccount->ID; |
|
$_SESSION['ControllaPeriodoPreparazione'] = $bando_setup->ControllaPeriodoPreparazione(); |
|
$_SESSION['ControllaPeriodoClickDay'] = $bando_setup->ControllaPeriodoClickDay(); |
|
$_SESSION['ControllaPeriodoErogazione'] = $bando_setup->ControllaPeriodoErogazione(); |
|
$_SESSION['LoggedAccount'] = json_encode($LoggedAccount); |
|
$transaction = true; |
|
} |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $resSpid['erroreDescrizione']; |
|
} |
|
if ($transaction) { |
|
$return['esito'] = 1; |
|
$con->db_transactionCommit(); |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Attenzione , riprovare o contattare il Personale Tecnico"; |
|
$con->db_transactionRollback(); |
|
} |
|
exit(json_encode($return)); |
|
} |
|
|
|
function saveConsenso() { |
|
global $LoggedAccount; |
|
if ($_REQUEST['consenso']) { |
|
$result = array(); |
|
$resultSave = array(); |
|
$account = new Account($LoggedAccount->ID); |
|
$account->CONSENSO = 1; |
|
// unset($_SESSION['LoggedAccount']); |
|
// Utils::print_array($_SESSION);exit(); |
|
$resultSave = $account->Save(); |
|
if ($resultSave['esito'] == 1) { |
|
$temporany=json_decode($_SESSION['LoggedAccount'], true); |
|
$temporany['CONSENSO']=1; |
|
$_SESSION['LoggedAccount']=json_encode($temporany); |
|
$LoggedAccount = new Account($account->ID); |
|
$result['esito'] = 1; |
|
} else { |
|
$result['esito'] = -999; |
|
$result['erroreDescrizione'] = $resultSave['erroreDescrizione']; |
|
} |
|
} else { |
|
$result['esito'] = -999; |
|
$result['erroreDescrizione'] = "E' necessario prestare il consenso al trattamento dei dati per usufruire dei servizi della piattaforma"; |
|
} |
|
|
|
|
|
exit(json_encode($result)); |
|
} |
|
|
|
function sendPassword() { |
|
$result = array(); |
|
$email = Utils::get_filter_string('email'); |
|
if ($email == "") { |
|
$result['erroreDescrizione'] = "Attenzione inserire l'indirizzo E-mail"; |
|
} else { |
|
|
|
$risposta_Account = Account::selectId($email); |
|
$account = new Account($risposta_Account['ID']); |
|
$resultSendPass = Utils::sendPwdResetFirebase(trim($email)); |
|
if ($resultSendPass['esito'] == 1) { |
|
$result['esito'] = 1; |
|
} else { |
|
$result['esito'] = -999; |
|
$result['erroreDescrizione'] = $resultSendPass['erroreDescrizione']; |
|
} |
|
} |
|
exit(json_encode($result)); |
|
} |
|
|
|
function sendMail() { |
|
$result = array(); |
|
$token = trim($_REQUEST['token']); |
|
$account = new Account($risposta_Account['ID']); |
|
if ($account->VERIFICATO == 0) { |
|
$resultSendMail = Utils::sendVerificationMailFirebase($token); |
|
// print_r($resultSendMail); |
|
if ($resultSendMail['esito'] == 1) { |
|
$result['esito'] = 1; |
|
} else { |
|
$result['esito'] = -999; |
|
$result['erroreDescrizione'] = $resultSendMail['erroreDescrizione']; |
|
} |
|
} else { |
|
$result['erroreDescrizione'] = "Attenzione l'indirizzo email risulta già attivo"; |
|
} |
|
exit(json_encode($result)); |
|
} |
|
|
|
function login() { |
|
global $con, $LoggedAccount, $bando_setup; |
|
$return = array(); |
|
$return['bottone'] = 0; |
|
$return['token'] = 0; |
|
|
|
if (!$bando_setup->ControllaPeriodoPreparazione() && ATTIVA_CONTROLO_BANDO_LOGIN) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = 'Il servizio della preparazione della domanda non è attivo.'; |
|
exit(json_encode($return)); |
|
} |
|
|
|
|
|
$rGoogle = Utils::loginFirebase($_REQUEST['email'], $_REQUEST['password']); |
|
if ($rGoogle['esito'] == 1) { |
|
$id_firebase = UID_FIREBASE::selectId($_REQUEST['email']); |
|
$uid_firebase = new UID_FIREBASE($id_firebase['ID']); |
|
if ($uid_firebase->VERIFICATO == 0) { |
|
$verifcato = Utils::getUserDataFirebase($rGoogle['dati']['idToken']); |
|
|
|
if ($verifcato['esito'] == 1) { |
|
if ($verifcato['dati']['users'][0]['emailVerified'] == 1) { |
|
$uid_firebase->VERIFICATO = 1; |
|
$returnAccount = $uid_firebase->Save(); |
|
if ($returnAccount['esito'] == 1) { |
|
$return['esito'] = 1; |
|
$id_accountCodiFis = Account::selectIdFromCodiceF($uid_firebase->CODICE_FISCALE); |
|
$LoggedAccount = new Account($id_accountCodiFis['ID']); |
|
$LoggedAccount->SchedaPersona = SchedaPersona::Load(); |
|
|
|
|
|
|
|
$LoggedAccount->COGNOME = "CONTE"; |
|
$LoggedAccount->NOME = "AMERIGO"; |
|
$LoggedAccount->CODICE_FISCALE = "BSSRNT54P18H501Q"; |
|
$LoggedAccount->SPID_MOBILE_PHONE = "328123456"; |
|
$LoggedAccount->SPID_EMAIL = "ameconte@gmail.com"; |
|
$LoggedAccount->SPID_TIPO_DOCUMENTO = "CartaIdentità"; |
|
$LoggedAccount->SPID_NUMERO_DOCUMENTO = "AS09452389"; |
|
$LoggedAccount->SPID_ENTE_RILASCIO = "ComuneRoma"; |
|
$LoggedAccount->SPID_DATA_RILASCIO = "02-01-2013"; |
|
$LoggedAccount->SPID_DATA_SCADENZA = "31-01-2013"; |
|
|
|
|
|
|
|
$_SESSION['ID'] = $LoggedAccount->ID; |
|
$_SESSION['ControllaPeriodoPreparazione'] = $bando_setup->ControllaPeriodoPreparazione(); |
|
$_SESSION['ControllaPeriodoClickDay'] = $bando_setup->ControllaPeriodoClickDay(); |
|
$_SESSION['LoggedAccount'] = json_encode($LoggedAccount); |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $returnAccount['erroreDescrizione']; |
|
} |
|
} else { |
|
$return['bottone'] = 1; |
|
$return['token'] = $rGoogle['dati']['idToken']; |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Verifica mail non riuscita! E' necessario confermare la creazione dell'account tramite il link contenuta nella mail ricevuta. Se non hai ricevuto la mail, clicca su Reinvia Mail per riceverne una nuova."; |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $rGoogle['erroreDescrizione']; |
|
} |
|
} else { |
|
$return['esito'] = 1; |
|
$id_accountCodiFis = Account::selectIdFromCodiceF($uid_firebase->CODICE_FISCALE); |
|
$LoggedAccount = new Account($id_accountCodiFis['ID']); |
|
$LoggedAccount->SchedaPersona = SchedaPersona::Load(); |
|
|
|
$LoggedAccount->COGNOME = "CONTE"; |
|
$LoggedAccount->NOME = "AMERIGO"; |
|
$LoggedAccount->CODICE_FISCALE = "BSSRNT54P18H501Q"; |
|
$LoggedAccount->SPID_MOBILE_PHONE = "328123456"; |
|
$LoggedAccount->SPID_EMAIL = "ameconte@gmail.com"; |
|
$LoggedAccount->SPID_TIPO_DOCUMENTO = "CartaIdentità"; |
|
$LoggedAccount->SPID_NUMERO_DOCUMENTO = "AS09452389"; |
|
$LoggedAccount->SPID_ENTE_RILASCIO = "ComuneRoma"; |
|
$LoggedAccount->SPID_DATA_RILASCIO = "02-01-2013"; |
|
$LoggedAccount->SPID_DATA_SCADENZA = "31-01-2013"; |
|
|
|
|
|
$_SESSION['ID'] = $LoggedAccount->ID; |
|
$_SESSION['ControllaPeriodoPreparazione'] = $bando_setup->ControllaPeriodoPreparazione(); |
|
$_SESSION['ControllaPeriodoClickDay'] = $bando_setup->ControllaPeriodoClickDay(); |
|
$_SESSION['LoggedAccount'] = json_encode($LoggedAccount); |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $rGoogle['erroreDescrizione']; |
|
} |
|
// } else { |
|
// $return['esito'] = -999; |
|
// $return['erroreDescrizione'] = "Attenzione l'utente inserito non è presente all'interno dell'applicativo"; |
|
// } |
|
exit(json_encode($return)); |
|
} |
|
|
|
function save() { |
|
global $con; |
|
$return = array(); |
|
$ricevuto = array(); |
|
$return['esito'] = 1; |
|
$con->db_transactionStart(); |
|
$creazione = time(); |
|
$ricevuto = Utils::requestDati($_REQUEST); |
|
$account = new Account(); |
|
$transaction = false; |
|
/* |
|
* Chiamata Curl Firebase per la memorizzazione dei dati |
|
*/ |
|
$signInFirebase = Utils::signUpFirebase($ricevuto['EMAIL'], $_REQUEST['PASSWORD']); |
|
if ($signInFirebase['esito'] == 1) { |
|
$codice_fiscale = UID_FIREBASE::controlloCodiceFiscale($ricevuto['CODICE_FISCALE']); |
|
if ($codice_fiscale['esito'] == 1) { |
|
$accountGoogle = new UID_FIREBASE(); |
|
$accountGoogle->GUID = $signInFirebase['dati']['localId']; |
|
$accountGoogle->CODICE_FISCALE = $ricevuto['CODICE_FISCALE']; |
|
$accountGoogle->EMAIL = $signInFirebase['dati']['email']; |
|
$accountGoogle->RECAPITO = $ricevuto['RECAPITO_TELEFONICO']; |
|
$resultSave = $accountGoogle->Save(); |
|
if ($resultSave['esito'] == 1) { |
|
$controlloAccountCodFis = Account::controlloCodiceFiscale($accountGoogle->CODICE_FISCALE); |
|
if ($controlloAccountCodFis['esito'] == 1) { |
|
$account = new Account(); |
|
$account->CODICE_FISCALE = $accountGoogle->CODICE_FISCALE; |
|
$resultAccount = $account->Save(); |
|
if ($resultAccount['esito'] == 1) { |
|
$return['esito'] = 1; |
|
$transaction = true; |
|
} else { |
|
$return['esito'] = -999; |
|
// $return['sql'] = $resultAccount['sql']; |
|
$return['erroreDescrizione'] = "Attenzione c'è stato un problema sul salvataggio"; |
|
} |
|
} else { |
|
$return['esito'] = 1; |
|
$transaction = true; |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
// $return['sql'] = $resultSave['sql']; |
|
$return['erroreDescrizione'] = $resultSave['erroreDescrizione']; |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $codice_fiscale['erroreDescrizione']; |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $signInFirebase['erroreDescrizione']; |
|
} |
|
if ($transaction) { |
|
$con->db_transactionCommit(); |
|
Utils::sendVerificationMailFirebase($signInFirebase['dati']['idToken']); |
|
} else { |
|
$con->db_transactionRollback(); |
|
Utils::deleteUtenteFirebase($signInFirebase['dati']['idToken']); |
|
} |
|
exit(json_encode($return)); |
|
} |
|
|
|
/* |
|
function listUtenti() { |
|
$draw = $_POST['draw']; |
|
$row = $_POST['start']; |
|
$rowperpage = $_POST['length']; // Rows display per page |
|
$columnIndex = $_POST['order'][0]['column']; // Column index |
|
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name |
|
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc |
|
$searchValue = $_POST['search']['value']; // Search value |
|
$data = array(); |
|
$searchArray = array(); |
|
## Search |
|
$searchQuery = ""; |
|
if ($searchValue != '') { |
|
$searchQuery = " AND ( lower(cognome) LIKE :descrizione) "; |
|
$searchArray = array( |
|
'descrizione' => "%$searchValue%" |
|
); |
|
} |
|
$res = UTENTE::LoadDataTable($searchQuery, $searchArray, $columnName, $columnSortOrder, $row, $rowperpage); |
|
foreach ($res['empRecords'] as $row) { |
|
$fnAddMod = '<button class="btn btn-block btn-warning" data-toggle="modal" data-target="#myModal" btn-sm" onclick="avviaDettaglio(' . $row['id'] . ')"><i class="fa fa-user"></i> Modifica</button>'; |
|
|
|
if ($row['stato'] == 0) { |
|
$fnStato = '<button class="btn btn-block btn-danger" btn-sm" onclick="abilitaStato(' . $row['id'] . ')"><i class="fa fa-times"></i>"Disabilitato</button>'; |
|
} else { |
|
$fnStato = '<button class="btn btn-block btn-success" btn-sm" onclick="disabilitaStato(' . $row['id'] . ')"><i class="fa fa-check"></i> Abilitato</button>'; |
|
} |
|
$data[] = array( |
|
"user" => $row['nome'] . " " . $row['cognome'], |
|
"mail" => $row['mail'], |
|
"modifica" => $fnAddMod, |
|
"cancellato" => $fnStato |
|
); |
|
} |
|
## Response |
|
$response = array( |
|
"draw" => intval($draw), |
|
"iTotalRecords" => $res['iTotalRecords'], |
|
"iTotalDisplayRecords" => $res['iTotalDisplayRecords'], |
|
"aaData" => $data |
|
); |
|
|
|
exit(json_encode($response)); |
|
} |
|
* |
|
*/ |
|
|
|
|