public function change_password()
 {
     $VUser = new VUser();
     $passwords = $VUser->getChangePasswords();
     $data = 1;
     if ($passwords) {
         $FUser = new FUser();
         $session = new USession();
         try {
             $user = $FUser->loadUser($session->getValue('mail'));
             if ($user && $passwords['password'] == $passwords['r_password'] && $user->getPassword() == $passwords['old_password']) {
                 $data = 0;
                 $user->setPassword($passwords['password']);
                 $FUser->saveUser($user);
                 $session->setValue("password", $passwords['password']);
             } else {
                 if (!$user) {
                     //Non c'è l'utente (IMPOSSIBILE)
                     $data = 2;
                 } else {
                     if ($user->getPassword() != $passwords['old_password']) {
                         //la vecchia password è errata
                         $data = 3;
                     } else {
                         $data = 4;
                     }
                 }
                 //le password ripetute non coincidono
             }
         } catch (Exception $e) {
             $data = 1;
             //la password è nel formato sbagliato
         }
     }
     return $this->show("reset_outcome", $data);
 }
Exemple #2
0
 public function sign()
 {
     $errors = array();
     $VLog = new VLog();
     $data = $VLog->getSignData();
     if ($data) {
         $bool = true;
         foreach ($data as $elem) {
             if ($elem == "" && $bool) {
                 $errors[] = 1;
                 $bool = false;
             }
         }
         if ($data['password'] != $data['r_password']) {
             $errors[] = 2;
             $bool = false;
         }
         if ($bool) {
             $n = ucfirst($data['name']);
             $s = ucfirst($data['surname']);
             $SSN = strtoupper($data['ssn']);
             $p = $data['phone'];
             $m = strtolower($data['mail']);
             $pass = $data['password'];
             try {
                 $b = new DateTime($data['birth']);
                 $now = new DateTime();
                 $diff = $now->diff($b);
                 if (intval($diff->format('%Y')) < 18) {
                     $errors[] = 6;
                     $bool = false;
                 } else {
                     $new_user = new DUser($n, $s, $SSN, $p, $m, $b, $pass);
                 }
             } catch (Exception $e) {
                 $errors[] = 3;
                 $bool = false;
             }
         }
     } else {
         $errors[] = 1;
     }
     $n_errors = count($errors);
     if ($n_errors == 0) {
         $FUser = new FUser();
         $hypS = $FUser->is_a_user($SSN);
         //controlla se c'è già un utente con quel codice fiscale
         if ($hypS) {
             $errors[] = 4;
             $bool = false;
         }
         $hypM = $FUser->mail_in($m);
         if ($hypM) {
             $errors[] = 7;
             $bool = false;
         }
         if (!$hypS && !$hypM) {
             try {
                 global $config;
                 $Mailer = new UEmail();
                 $VMail = new VMail();
                 $VMail->setLayout("confirmation");
                 $VMail->setDest("{$n} {$s}");
                 $VMail->setCode($new_user->getCode());
                 $message = $VMail->processTemplate();
                 if ($Mailer->send_mail($m, $n, $config['name'] . " confirmation mail", $message, true)) {
                     $FUser->saveUser($new_user);
                     //salva il nuovo utente (o aggiorna i campi nelle tabella person per un cliente ancora non utente)
                 } else {
                     $errors[] = 5;
                     $bool = false;
                 }
             } catch (Exception $e) {
                 $errors[] = 5;
                 $bool = false;
             }
         }
     }
     if ($bool) {
         return $this->show('sign_outcome', false);
     } else {
         return $this->show('sign_outcome', $errors);
     }
 }