/**
  * 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;
 }
示例#4
0
                <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;
 }
示例#7
0
<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: ‘ , \ &amp; $ &lt; &gt; 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');
     }
 }