/** * Renvoie une instance de la classe * @author Alban Truc * @since 30/01/14 * @return mixed */ public static function instantiate() { if (!isset(self::$instance)) { $class = __CLASS__; self::$instance = new $class(); } return self::$instance; }
/** * - Supprime un/des refElement(s) correspondant à des critères données * - Gestion des exceptions et des erreurs * @author Alban Truc * @param array|RefElement $criteria ce qu'il faut supprimer * @param array $options * @since 11/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ function remove($criteria, $options = array('w' => 1)) { //Transforme $criteria en array s'il contient un objet if ($criteria instanceof RefElement) { $criteria = $this->dismount($criteria); } $result = parent::__remove('refelement', $criteria, $options); return $result; }
/** * - Supprime une/des connexion(s) correspondant à des critères données * - Gestion des exceptions et des erreurs * @author Alban Truc * @param array|Connection $criteria ce qu'il faut supprimer * @param array $options * @since 11/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ function remove($criteria, $options = array('w' => 1)) { //Transforme $criteria en array s'il contient un objet if ($criteria instanceof Connection) { $criteria = $this->dismount($criteria); } if (isset($criteria['idUser'])) { if ($criteria['idUser'] instanceof User) { $criteria['idUser'] = new MongoId($criteria['idUser']->getId()); } else { if (is_array($criteria['idUser']) && isset($criteria['idUser']['_id'])) { $criteria['idUser'] = $criteria['idUser']['_id']; } } } $result = parent::__remove('connection', $criteria, $options); return $result; }
<li class="active"> <a href="#dashboard.php" title="Dashboard"><i class="glyphicon glyphicon-home"></i> <span class="menu-item-parent">Dashboard</span></a> </li> <li> <a href="#users.php" title="Users"><i class="glyphicon glyphicon-user"></i> <span class="menu-item-parent">Users</span></a> </li> </ul> </nav> </aside> <section id="main" role="main"> <div> <?php //Instantiation de la bdd (connexion) $mongo = AbstractPdoManager::instantiate(); //récupère la collection "users" $users_collection = $mongo->get_collection('user'); //recupere tous les users $cursor = $users_collection->find(); echo "<h3>Liste des Utilisateurs enregistrés</h3>"; foreach ($cursor as $users) { echo $users['name']; echo " || "; echo $users['email']; echo " || "; echo $users['password']; echo "</br>"; } ?> </div>
/** * - Ajoute un refAction en base de données * - Gestion des exceptions et des erreurs * @author Alban Truc * @param array|RefAction $document * @param array $options * @since 12/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ public function create($document, $options = array('w' => 1)) { //Transforme $document en array s'il contient un objet if ($document instanceof RefAction) { $document = $this->dismount($document); } $result = parent::__create('refaction', $document, $options); return $result; }
/** * - Supprime un/des compte(s) correspondant à des critères données * - Gestion des exceptions et des erreurs * @author Alban Truc * @param array|Account $criteria ce qu'il faut supprimer * @param array $options * @since 31/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ public function remove($criteria, $options = array('w' => 1)) { //Transforme $criteria en array s'il contient un objet if (!is_array($criteria)) { $criteria = $this->dismount($criteria); } //cf fonction find if (isset($criteria['idUser'])) { if ($criteria['idUser'] instanceof User) { $criteria['idUser'] = new MongoId($criteria['idUser']->getId()); } else { if (is_array($criteria['idUser']) && isset($criteria['idUser']['_id'])) { $criteria['idUser'] = $criteria['idUser']['_id']; } } } if (isset($criteria['idRefPlan'])) { if ($criteria['idRefPlan'] instanceof RefPlan) { $criteria['idRefPlan'] = new MongoId($criteria['idRefPlan']->getId()); } else { if (is_array($criteria['idRefPlan']) && isset($criteria['idRefPlan']['_id'])) { $criteria['idRefPlan'] = $criteria['idRefPlan']['_id']; } } } $result = parent::__remove('account', $criteria, $options); return $result; }
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head> <?php include '../header/menu.php'; if (isset($_SESSION['user'])) { refreshUserSession(); $userManager = new UserPdoManager(); $accountManager = new AccountPdoManager(); $refManager = new RefPlanPdoManager(); //Récupère les dates d'enregistrement et de fin d'abonnement $userStartDate = $user->getCurrentAccount()->getStartDate(); $userEndDate = $user->getCurrentAccount()->getEndDate(); //Formatage des dates pour une meilleur lisibilité humaine $userFormatStartDate = AbstractPdoManager::formatMongoDate($userStartDate); $userFormatEndDate = AbstractPdoManager::formatMongoDate($userEndDate); //Requête BDD $userInSession = unserialize($_SESSION['user']); $user = $userManager->findById($userInSession->getId()); //retrouve l'user connecté grâce à l'id en session $userAccount = $accountManager->findById($user->getCurrentAccount()); //retrouve le compte user $userPlan = $refManager->findById($userAccount->getRefPlan()); //retrouve le plan user ?> <body id="bodyAccount"> <aside id="left-panel"> <div class="left-panel-content"> <div class="tab-control toggle-card"> <div class="card-spinner-container"> <i id="buttCollapse" style="color: red;position: absolute;left: 201px;height: 100%;padding-top: 20px;" class="glyphicon glyphicon-cog"></i>
/** * Change le mot de passe d'un utilisateur qui l'a perdu * @param string $email * @param string $token * @param string $newPassword * @param string $newPasswordConfirmation * @return array|string|TRUE */ public function validatePasswordReset($email, $token, $newPassword, $newPasswordConfirmation) { if ($newPassword == $newPasswordConfirmation) { /* **Entre 8 et 26 caractères, mini un chiffre, mini une lettre minuscule, mini une lettre majuscule, **minimum un caractère spécial (@*#). **Exemples de caractères non acceptés: ‘ , \ & $ < > et l'espace (\s). */ $regex = '/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@*#]).([a-zA-Z0-9@*#]{8,26})$/'; if (preg_match($regex, $newPassword)) { $criteria = array('email' => $email, 'token' => $token); $result = parent::__findOne('validation', $criteria); if (!array_key_exists('error', $result)) { //Reset non encore effectué if ($result['state'] == 2) { $newPassword = self::encrypt($newPassword); $updateUserState = $this->update(array('email' => $email), array('$set' => array('password' => $newPassword))); if ($updateUserState == TRUE) { $updateValidation = array('$set' => array('state' => (int) 3)); //3 = reset effectué $updateValidationState = parent::__update('validation', $criteria, $updateValidation); if ($updateValidationState == TRUE) { return 'Password changed successfully. You can now login!'; } else { $errorMessage = 'Your password was changed but we had trouble acknowledging this information.' . 'Please contact us.'; return array('error' => $errorMessage); } } else { return $updateUserState; } } else { $errorMessage = 'You already used your token to reset your password.' . 'You will have to request for another reset if you really want to do so.'; return array('error' => $errorMessage); } } else { return $result; } } else { return array('error' => 'New password doesn\'t match password specifications'); } } else { return array('error' => 'The new password and its confirmation aren\'t the same'); } }