function uploadFile() { $request = Slim::getInstance()->request(); $user = json_decode($request->getBody()); $content = $user->content; $filename = $user->filename ? $user->filename : time(); $piva = trim_string($user->piva); $username = $user->username; $AppModel = new Model(); $Assoc = new AssociazioneModel(); $id_utente = $AppModel->getIdUtente($username); $id_database = $AppModel->getIdDbbyCodice($piva); $id_associazione = $Assoc->getIDAssociazione((int) $id_database, (int) $id_utente); if (!is_null($id_associazione)) { $upload_folder = PATH_BASE . DS . CSV . DS . $piva; if (file_exists($upload_folder)) { if ($content !== NULL) { $res = file_put_contents($upload_folder . '/' . $filename . '.zip', base64_decode($content)); if ($res !== FALSE) { $status = array("statuscode" => 200, "response" => array("success" => true, "msg" => "I file sono stati inviati correttamente.", "data" => array("size" => $res))); echo json_encode($status); } else { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "Errore scrittura dati su filesystem.", "data" => array("size" => $res))); echo json_encode($status); } } else { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "I file sono vuoti o in formato non riconosciuto.", "data" => array("size" => 0))); echo json_encode($status); } } else { mkdir(PATH_BASE . DS . CSV . DS . $piva, 0777, true); if ($content !== NULL) { $res = file_put_contents($upload_folder . '/' . $filename . '.zip', base64_decode($content)); if ($res !== FALSE) { $status = array("statuscode" => 200, "response" => array("success" => true, "msg" => "Nuova cartella creata e i dati sono stati importati con successo.", "data" => array("size" => $res))); echo json_encode($status); } else { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "Errore scrittura dati su filesystem.", "data" => array("size" => $res))); echo json_encode($status); } } else { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "I file sono vuoti o in formato non riconosciuto.", "data" => array("size" => 0))); echo json_encode($status); } } } else { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "L'utente non dispone dei permessi di scrittura. Verificare che le credenziali di accesso e la Partita IVA siano impostate correttamente.", "data" => array("size" => 0))); echo json_encode($status); } }
function addUserFromCommerce() { $AppModel = new Model(); $Utente = new UtenteModel(); $Uform = new UtenteForm(); $Dbase = new DatabaseModel(); $Dform = new DatabaseForm(); $Assoc = new AssociazioneModel(); $Aform = new AssociazioneForm(); $request = Slim::getInstance()->request(); $user = json_decode($request->getBody()); //Utente $Uform->email = trim_string($user->email); $Uform->id_utente = null; $pwd = Password::randomPassword(); $Uform->passwd = Password::hashPassword($pwd); $Uform->nome = $user->nome; $numdb = (int) $user->num_db; //TODO: Check for empty number of databases $id_utente = $AppModel->getIdUtente($Uform->email); $piva = trim_string($user->piva); $dbprogr = $AppModel->getNumDB($user->email); $INI = $dbprogr; $FIN = $dbprogr + $numdb; /////////////////////////////////////////////////////////////////////////check if fields are not empty/////////////////////////////// if (!empty($user->email) && !empty($user->piva) && !empty($user->num_db)) { try { ///////////////////////////////////////////////////checks if user exist already or no /////////////////////////////////////// if (empty($id_utente)) { $Utente->saveDb($Uform, 1, 1); $testo = "<p>Salve {$user->email},</p>\r\n <p>i tuoi dati di accesso presso <b>" . NAME . ":</b><br><br>\r\n <b>Nome utente</b>: {$user->email}<br>\r\n <b>Password:</b> {$pwd}</p>\r\n <p>Una volta effettuato l'accesso ti verrà richiesto di cambiare la password tramite l'apposita funzionalità</p>\r\n <p>Adesso puoi effettuare il login al seguente indirizzo: <a href=\"" . URL . "index.php?section=login\">" . URL . "index.php?section=login</a></p>"; Mailer::sendMail($user->email, NAME, EMAIL, false, NAME . ' - Utente e password', $testo); //////////////////////////////////////////////////////////////creates number of databases rquested///////////////////////////////////////////////// $Dform->alias = (string) $user->ragsoc; $dbnames = createDBName($INI, $FIN, $piva); foreach ($dbnames as $key => $value) { $id_database = $AppModel->getIdDb($value); if (empty($id_database)) { $Dform->nome = $value; $Dform->codice = explode("_", $value)[1]; if (!$Dbase->esisteDatabase($Dform->nome)) { $Dbase->saveDb($Dform); if (!file_exists(PATH_BASE . DS . CSV . DS . $Dform->codice) && !is_dir(PATH_BASE . DS . CSV . DS . $Dform->codice)) { mkdir(PATH_BASE . DS . CSV . DS . $Dform->codice, 0777, true); } } } $Aform->id_utente = $AppModel->getIdUtente($user->email); $Aform->id_database = $AppModel->getIdDb($Dform->nome); // use name inserted into db ...not something else $Aform->id_associazione = $Assoc->getIDAssociazione($Aform->id_database, $Aform->id_utente); $Aform->data_scadenza = (string) $user->data_scadenza; if (!$Assoc->controllaUnicita($Aform->id_utente, $Aform->id_database, $Aform->id_associazione)) { $Assoc->saveDb($Aform, 1, 1); } // Check if flight is set, enable menu and impose other conditions. if ($user->tipo_gest == '1') { $Dbase->setAuth($AppModel->getIdDb($Dform->nome), 3, 1); $Dbase->ImpostazioneFlight($Dform->nome); } } //check for errors $AppModel->updateNumDB($Uform->email, $numdb); // TODO: Use error checks to send different jsons that is 1 .error in utente, 2. error in database 3.associazione $status = array("statuscode" => 200, "response" => array("success" => true, "msg" => "Richiesta eseguita con successo. E stato creato un utente, un database e un abbinamento/associazione.", "data" => array())); echo json_encode($status); } else { // if user doesn't exist // 3. send email //2. create db, //create assocciazione with all $Dform->alias = (string) $user->ragsoc; $dbnames = createDBName($INI, $FIN, $piva); foreach ($dbnames as $key => $value) { $id_database = $AppModel->getIdDb($value); if (empty($id_database)) { $Dform->nome = $value; $Dform->codice = explode("_", $value)[1]; if (!$Dbase->esisteDatabase($Dform->nome)) { $Dbase->saveDb($Dform); if (!file_exists(PATH_BASE . DS . CSV . DS . $Dform->codice) && !is_dir(PATH_BASE . DS . CSV . DS . $Dform->codice)) { mkdir(PATH_BASE . DS . CSV . DS . $Dform->codice, 0777, true); } } // else check for errors } //$checkdbname = $Dbase->getDatabase($id_database); // check if database exist already // if so try create associasion //else create db and create association $Aform->id_utente = $AppModel->getIdUtente($user->email); $Aform->id_database = $AppModel->getIdDb($Dform->nome); // use name inserted into db ...not something else $Aform->id_associazione = $Assoc->getIDAssociazione($Aform->id_database, $Aform->id_utente); $Aform->data_scadenza = (string) $user->data_scadenza; if (!$Assoc->controllaUnicita($Aform->id_utente, $Aform->id_database, $Aform->id_associazione)) { $Assoc->saveDb($Aform, 1, 1); } // user alreadey exist send check if database exist and check if associzoine exist then send email $testo = "<p>Salve {$user->email},</p>\r\n <p>La sua richiesta è stata accettata. Abbiamo abbinato una nuova basi di dati a questo utente.</p>\r\n <p>i tuoi dati di accesso presso <b>" . NAME . ":</b><br>\r\n <p>Si potrebbe usare le tue credenziali già esistente per accedere.</p>\r\n <p></p>\r\n <p>Adesso puoi effettuare il login al seguente indirizzo: <a href=\"" . URL . "index.php?section=login\">" . URL . "index.php?section=login</a></p>"; Mailer::sendMail($user->email, NAME, EMAIL, false, NAME . ' - Utente e password', $testo); // Check if flight is set, enable menu and impose other conditions. if ($user->tipo_gest == '1') { $Dbase->setAuth($AppModel->getIdDb($Dform->nome), 3, 1); $Dbase->ImpostazioneFlight($Dform->nome); } } // for each $AppModel->updateNumDB($Uform->email, $numdb); // TODO: Use error checks to send different jsons that is 1 .error in utente, 2. error in database 3.associazione $status = array("statuscode" => 200, "response" => array("success" => true, "msg" => "Richiesta eseguita con successo.E stato creato un database e un abbinamento/associazione. ", "data" => array())); echo json_encode($status); } // else } catch (Exception $e) { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "Iscrizione negato, email/utente già esistente!", "errmsg" => $e->getMessage(), "data" => null)); echo json_encode($status); } } else { $status = array("statuscode" => 200, "response" => array("success" => false, "msg" => "I campi email, numero di database e partita IVA non possono essere vuoti", "data" => null)); echo json_encode($status); } }