/** * Fonction d'update utilisant celle de {@see AbstractPdoManager} * @author Alban Truc * @param array|RefElement $criteria description des entrées à modifier * @param array|RefElement $update nouvelles valeurs * @param array|NULL $options * @since 11/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ function update($criteria, $update, $options = array('w' => 1)) { //Transforme $criteria en array s'il contient un objet if ($criteria instanceof RefElement) { $criteria = $this->dismount($criteria); } $result = parent::__update('refelement', $criteria, $update, $options); return $result; }
/** * Fonction d'update utilisant celle de {@see AbstractPdoManager} * @author Alban Truc * @param array|Connection $criteria description des entrées à modifier * @param array|Connection $update nouvelles valeurs * @param array|NULL $options * @since 11/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ function update($criteria, $update, $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']; } } } if (isset($update['idUser'])) { if ($update['idUser'] instanceof User) { $update['idUser'] = new MongoId($update['idUser']->getId()); } else { if (is_array($update['idUser']) && isset($update['idUser']['_id'])) { $update['idUser'] = $update['idUser']['_id']; } } } $result = parent::__update('connection', $criteria, $update, $options); return $result; }
/** * Fonction d'update utilisant celle de {@see AbstractPdoManager} * @author Alban Truc * @param array|Account $criteria description des entrées à modifier * @param array|Account $update nouvelles valeurs * @param array|NULL $options * @since 31/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ public function update($criteria, $update, $options = array('w' => 1)) { //Transforme $criteria en array s'il contient un objet if ($criteria instanceof Account) { $criteria = $this->dismount($criteria); } //Transforme $update en array s'il contient un objet if ($update instanceof Account) { $update = $this->dismount($update); } //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']; } } } if (isset($update['idUser'])) { if ($update['idUser'] instanceof User) { $update['idUser'] = new MongoId($update['idUser']->getId()); } else { if (is_array($update['idUser']) && isset($update['idUser']['_id'])) { $update['idUser'] = $update['idUser']['_id']; } } } if (isset($update['idRefPlan'])) { if ($update['idRefPlan'] instanceof RefPlan) { $update['idRefPlan'] = new MongoId($update['idRefPlan']->getId()); } else { if (is_array($update['idRefPlan']) && isset($update['idRefPlan']['_id'])) { $update['idRefPlan'] = $update['idRefPlan']['_id']; } } } $result = parent::__update('account', $criteria, $update, $options); return $result; }
/** * Fonction d'update utilisant celle de {@see AbstractPdoManager} * @author Alban Truc * @param array|RefAction $criteria description des entrées à modifier * @param array|RefAction $update nouvelles valeurs * @param array|NULL $options * @since 11/03/2014 * @return TRUE|array contenant le message d'erreur dans un indexe 'error' */ public function update($criteria, $update, $options = array('w' => 1)) { //Transforme $criteria en array s'il contient un objet if ($criteria instanceof RefAction) { $criteria = $this->dismount($criteria); } //Transforme $update en array s'il contient un objet if ($update instanceof RefAction) { $update = $this->dismount($update); } $result = parent::__update('refaction', $criteria, $update, $options); return $result; }
/** * 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'); } }