public static function byEmail($email) { $mapper = new UserDBMapper(); $db_array = $mapper->getByEmail($email); $user = User::fromDBArray($db_array); return $user; }
/** * @param $json * @param $email_type * @return ErrorResponse|null|Response */ public static function setNewPassword($json, $email_type) { $response = null; $missing_fields = UserController::validateJSONFormat($json, User::REQUIRED_PASSWORD_RESET_FIELD); // Check that required fields are not missing if (!$missing_fields) { $user_mapper = new UserDBMapper(); $email = $json['email']; $user = User::fromDBArray($user_mapper->getByEmail($email)); // Set random password $password = ResetPasswordController::getRandomString(ResetPasswordController::PASSWORD_LENGTH); $json['password'] = $password; $id = $user->getId(); $reset_password_user = User::fromResetPasswordQuery($id, $json); if ($reset_password_user) { $db_response = $user_mapper->resetPassword($reset_password_user); if ($db_response instanceof DBError) { $response = new ErrorResponse($db_response); } else { $reset_password_user = $user_mapper->getById($id); if ($reset_password_user) { EmailSender::sendEmail($email, $password, $email_type); // Sending Email notification $response = new Response(json_encode(array('message' => ResetPasswordController::RESET_PASSWORD_ACCEPTED_MESSAGE), JSON_PRETTY_PRINT), Response::STATUS_CODE_ACCEPTED); } else { $response = new ErrorResponse(new NotFoundError()); } } } return $response; } return new Response($response); }