private function sendActivation($user_id, $email)
 {
     $token = Tools::hash($email);
     $url = Tools::generateUrl(['activate_account', $token]);
     $user = User::findOrFail($user_id);
     $user->activate_token = $token;
     $user->save();
     Mailing::activate($email, $url);
 }
Example #2
0
 public function registration()
 {
     $mode = $this->getParam('mode');
     $email = strtolower($this->getParam('email'));
     $name = Tools::ucwords($this->getParam('name', 'NoName'));
     $familyName = Tools::ucwords($this->getParam('family_name'));
     $password = $this->getParam('password');
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
         exit(json_encode(['result' => 'fail', 'message' => 'Некорректный Email-адрес']));
     }
     if ($mode == 'check-email') {
         $email = DB::run()->query("select email from users where email = '" . $email . "'")->fetch();
         if ($email) {
             exit(json_encode(['result' => 'fail', 'message' => 'Такой Email уже зарегистрирован в системе!']));
         } else {
             exit(json_encode(['result' => 'done', 'message' => 'Email свободен для регистрации']));
         }
     }
     if (!$email || !$password) {
         exit(json_encode(['result' => 'fail', 'message' => 'Все поля формы обязательны для заполнения']));
     }
     $family = DB::run()->prepare('insert into families (name) values (?)');
     $user = DB::run()->prepare('insert into users (family, name, email, password, role, registered_date, updated_at, remember_token) values (?, ?, ?, ?, ?, ?, ?, ?)');
     $rememberToken = Tools::hash($email, time());
     try {
         DB::run()->beginTransaction();
         $family->execute([$familyName]);
         $familyId = DB::run()->lastInsertId('id');
         $registeredDate = date('Y-m-d H:i:s');
         $user->execute([$familyId, $name, $email, Tools::hash($password, Registry::get('hash_salt')), 'manager', $registeredDate, $registeredDate, $rememberToken]);
         $userId = DB::run()->lastInsertId('id');
         DB::run()->commit();
     } catch (PDOException $e) {
         DB::run()->rollBack();
         exit(json_encode(['result' => 'fail', 'message' => $e->getMessage()]));
     }
     if ($userId) {
         setcookie('auth', $rememberToken, time() + 3600 * 24 * 2, '/');
         Tools::setUserAuth((object) ['id' => $userId, 'family' => $familyId, 'name' => $name, 'email' => $email, 'role' => 'manager', 'registered_date' => $registeredDate]);
     }
     exit(json_encode(['result' => 'done', 'message' => 'Успешная регистрация!<br>Сейчас Вы будете перенаправлены!']));
 }
Example #3
0
 public static function setProfileIdAttribute($value)
 {
     $this->attributes['profile_id'] = Tools::hash($value);
 }
Example #4
0
<?php

defined("_nova_district_token_") or die('');
//gestion déconnexion
if (isset($_GET['a']) and $_GET['a'] == "deco") {
    UsersManager::instance()->disconnect();
}
//gestion connexion
if (!isset($_SESSION['user']) and isset($_POST['connection'])) {
    if (isset($_POST['email']) and $_POST['email'] != "" and isset($_POST['pass']) and $_POST['pass'] != "") {
        $result = UsersManager::instance()->connect($_POST['email'], Tools::hash($_POST['pass']));
        if (Tools::getParentClass($result) == "User") {
            $_SESSION['user'] = $result;
            // la session est ouverte
        } else {
            if (Tools::getClass($result) == "Error") {
                $errors["connection"] = $result;
            } else {
                $errors["connection"] = new Error("Echec : Email ou mot de passe invalide");
            }
        }
    }
}
//On inclut la vue
include dirname(__FILE__) . '/../views/header.php';
Example #5
0
 public function addFamily()
 {
     if (Registry::get('user')->role != 'admin') {
         $err = new Error();
         $err->error(404);
         return;
     }
     $name = $this->getParam('name');
     $email = strtolower($this->getParam('email'));
     $password = $this->getParam('password');
     $familyName = $this->getParam('family');
     if (!empty($name) && !empty($email) && !empty($password) && !empty($familyName)) {
         $registeredEmail = DB::run()->query('select email from users where email = ' . DB::run()->quote($email))->fetch();
         if ($registeredEmail) {
             exit(json_encode(['result' => 'fail', 'message' => 'Такой Email/Логин уже зарегистрирован в системе!']));
         }
         $stmt = DB::run()->prepare('insert into users (family, name, email, password, role, registered_date, updated_at) values (?, ?, ?, ?, ?, ?, ?)');
         $stmt2 = DB::run()->prepare('insert into families (name) values (?)');
         try {
             DB::run()->beginTransaction();
             $date = date('Y-m-d H:i:s');
             $stmt2->execute([$familyName]);
             $familyId = DB::run()->lastInsertId('id');
             $stmt->execute([$familyId, $name, $email, Tools::hash($password, Registry::get('hash_salt')), 'manager', $date, $date]);
             DB::run()->commit();
             exit(json_encode(['result' => 'done', 'message' => 'Новый менеджер и семья успешно добавлены в систему!']));
         } catch (PDOException $e) {
             DB::run()->rollBack();
             exit(json_encode(['result' => 'fail', 'message' => $e->getMessage()]));
         }
     }
     exit(json_encode(['result' => 'fail', 'message' => 'Все поля должны быть заполнены!']));
 }
<?php

defined("_nova_district_token_") or die('');
// formulaire d'inscription
if (isset($_POST['inscription']) and isset($_POST['email']) and isset($_POST['pass'])) {
    if (Tools::checkEmail($_POST['email']) and Tools::checkPassword($_POST['pass']) and $_POST['pass'] == $_POST['pass2']) {
        $mb = new Member();
        $mb->setEmail(Tools::secure($_POST['email']));
        $mb->setPassword(Tools::secure(Tools::hash($_POST['pass'])));
        $result = UsersManager::instance()->add($mb);
        if (Tools::getParentClass($result) == "User") {
            $_SESSION['user'] = $result;
            die('<meta http-equiv="refresh" content="0;URL=app/index.php?p=welcome">');
        } else {
            if (Tools::getClass($result) == "Error") {
                $errors["inscription"] = $result;
            } else {
                $errors['inscription'] = new Error();
            }
        }
    } else {
        $errors['inscription'] = new Error("Votre email est invalide ou vos mots de passes ne sont pas identiques !");
    }
}
//On inclut la vue
include dirname(__FILE__) . '/../views/inscription.php';