public static function chiudi() { $valpass = Validazione::filtra([['stato', VAL_PASS]]); $valmail = Validazione::filtra([['stato', VAL_MAIL]]); $valmails = Validazione::filtra([['stato', VAL_MAILS]]); $validazioni = array_merge($valpass, $valmail); $validazioni = array_merge($validazioni, $valmails); $duegiornifa = time() - DUEGIORNI; foreach ($validazioni as $v) { if ($v->timestamp < $duegiornifa) { $v->stato = VAL_CHIUSA; } } }
<?php /* * ©2013 Croce Rossa Italiana */ $parametri = array('inputEmail', 'inputCodiceFiscale'); controllaParametri($parametri, 'recuperaPassword&err'); $codiceFiscale = $_POST['inputCodiceFiscale']; $codiceFiscale = maiuscolo($codiceFiscale); $email = $_POST['inputEmail']; $p = Utente::by('codiceFiscale', $codiceFiscale); if (!$p) { redirect('recuperaPassword&cf'); } elseif ($p->email != $email) { redirect('recuperaPassword&email'); } /* Genera codice di validazione */ $codice = Validazione::generaValidazione($p, VAL_PASS); if (!$codice) { redirect('recuperaPassword&gia'); } $e = new Email('recuperaPassword', 'Richiesta reimpostazione password'); $e->a = $p; $e->_NOME = $p->nome; $e->_DATA = date('d-m-Y H:i'); $e->_CODICE = $codice; $e->invia(); redirect('recuperaPassword.step');
function cronjobGiornaliero() { global $log, $db, $cache; $ok = true; /* === 0. PERSISTE LA CACHE SU DISCO */ cronjobEsegui("Persistere la cache di Redis su disco", function () use($cache) { if ($cache) { $cache->save(); } return true; }, $log, $ok); cronjobEsegui("Cancellare file scaduti da disco e database", function () { $n = 0; foreach (File::scaduti() as $f) { $f->cancella(); $n++; } return "Cancellati {$n} file scaduti"; }, $log, $ok); cronjobEsegui("Autorizzare estensioni dopo 30gg, con notifica ai volontari", function () { $n = 0; foreach (Estensione::daAutorizzare() as $e) { $e->auto(); $n++; } return "Concesse {$n} estensioni"; }, $log, $ok); cronjobEsegui("Terminare estensioni", function () { $n = 0; foreach (Estensione::daChiudere() as $e) { $e->termina(); $n++; } return "Chiuse {$n} estensioni"; }, $log, $ok); cronjobEsegui("Autorizzare trasferimenti dopo 30gg, notifica e chiusura sospesi e turni", function () { $n = 0; foreach (Trasferimento::daAutorizzare() as $t) { $t->auto(); $n++; } return "Autorizzati {$n} trasferimenti"; }, $log, $ok); cronjobEsegui("Autorizzare riserve dopo 30gg", function () { $n = 0; foreach (Riserva::daAutorizzare() as $r) { $r->auto(); $n++; } return "Autorizzate {$n} riserve"; }, $log, $ok); cronjobEsegui("Pulitura e fix delle attività", function () { $n = 0; $n = Attivita::pulizia(); return "Fix di {$n} attività"; }, $log, $ok); cronjobEsegui("Rigenerazione albero dei comitati", function () { GeoPolitica::rigeneraAlbero(); return true; }, $log, $ok); cronjobEsegui("Chiusura validazioni scadute", function () { Validazione::chiudi(); return true; }, $log, $ok); cronjobEsegui("Rimozione errori vecchi di una settimana", function () { $n = MErrore::pulisci(); return "Cancellati log di {$n} errori in database"; }, $log, $ok); /**************************************************** * MODULO FORMAZIONE ****************************************************/ // Creo i certificati per i corsi superati cronjobEsegui("Cerca i corsi in stato da elaborare e genera i relativi certificati", function () { $n = Corso::chiudiCorsi(); return "Generati ({$n}) certificati"; }, $log, $ok); return $ok; }
<?php /* * ©2013 Croce Rossa Italiana */ controllaParametri(array('c'), 'recuperaPassword&err'); $codice = $_GET['c']; /* Cerca codice di validazione */ $validazione = Validazione::cercaValidazione($codice); if (!$validazione) { redirect('recuperaPassword&sca'); } $p = $validazione->utente(); /* Genera la password casuale */ $password = generaStringaCasuale(8, DIZIONARIO_ALFANUMERICO); /* Imposta la password */ $p->cambiaPassword($password); $validazione->stato = VAL_CHIUSA; $e = new Email('generaPassword', 'Nuova password generata'); $e->a = $p; $e->_NOME = $p->nome; $e->_PASSWORD = $password; $e->invia(); redirect('validazione.ok&pass');
<?php /* * ©2014 Croce Rossa Italiana */ paginaPrivata(); // controllo se ho in giro cambi email tra le validazioni del tizio $mailSospesa = Validazione::filtra([['volontario', $me], ['stato', VAL_MAIL]]); $mailServizioSospesa = Validazione::filtra([['volontario', $me], ['stato', VAL_MAILS]]); if ($mailSospesa) { $mailSospesa = $mailSospesa[0]; } if ($mailServizioSospesa) { $mailServizioSospesa = $mailServizioSospesa[0]; } ?> <div class="row-fluid"> <div class="span3"> <?php menuVolontario(); ?> </div> <div class="span9"> <h2><i class="icon-phone muted"></i> Modifica delle informazioni di contatto</h3> <hr /> <?php if (isset($_GET['emailok'])) { ?> <div class="alert alert-success"> <i class="icon-save"></i> <strong>Richiesta salvata</strong>. Controlla casella di posta specificata e conferma il tuo nuovo indirizzo per completare la procedura.
<?php /* * ©2013 Croce Rossa Italiana */ paginaPubblica(); $torna = @$sessione->torna; if (isset($_GET['back'])) { $torna = base64_encode(serialize(['p' => $_GET['back']])); } $sessione->torna = null; if (isset($_GET['token'])) { // PROCEDURA DI PREACCESSO DA API $token = Validazione::cercaValidazione($_GET['token']); $token->stato = VAL_CHIUSA; $token = json_decode($token->note); $sid = $token->sid; $chiave = APIKey::id($token->app); $ip = $token->ip; $nuovas = Sessione::id($sid); $nuovas->app_id = $chiave->id; $nuovas->app_ip = $ip; $nuovas->app_redirect = $token->redirect; setcookie('sessione', $sid, time() + $conf['sessioni']['durata']); redirect("login&back=utente.applicazione"); } paginaPubblica(); ?> <div class="row-fluid">
$e->_NOME = $me->nome; $e->_DATA = date('d-m-Y H:i'); $e->_TIPO = 'personale'; $e->_NUOVA = $newemail; $e->_CODICE = $codice; $e->invia(); $me->email = $email; redirect('utente.contatti&emailok'); } } if ($me->stato == VOLONTARIO && $newemailservizio && $newemailservizio != $me->emailservizio) { if (Utente::by('email', $newemailservizio)) { redirect('utente.contatti&emailep'); } else { /* Genera codice di validazione */ $codice = Validazione::generaValidazione($me, VAL_MAILS, $newemailservizio); if (!$codice) { redirect('utente.contatti&emailgia'); } /* Stratagemma per mandare la mail al nuovo indirizzo e validarlo */ $email = $me->email; $me->email = $newemailservizio; $e = new Email('validazioneMail', 'Richiesta sostituzione indirizzo email'); $e->a = $me; $e->_NOME = $me->nome; $e->_DATA = date('d-m-Y H:i'); $e->_TIPO = 'di servizio'; $e->_NUOVA = $newemailservizio; $e->_CODICE = $codice; $e->invia(); $me->email = $email;
/** * Ritorna un url di login */ private function api_login() { $this->sessione->logout(); $sid = $this->sessione->id; $redirect = false; if (isset($this->par['redirect'])) { $redirect = $this->par['redirect']; } $val = new Validazione(); $token = $val->generaValidazione(null, VAL_ATTESA, json_encode(['app' => $this->chiave->id, 'ip' => $_SERVER['REMOTE_ADDR'], 'sid' => $sid, 'redirect' => $redirect])); $url = "https://gaia.cri.it/?p=login&token={$token}"; return ['url' => $url, 'token' => $token]; }