public function findAction()
 {
     $request = new Request();
     $request->initRequest();
     $post = $request->getPost();
     $roadMapper = new RoadMapper();
     $roads = $roadMapper->getByStartFinish($post['departure_point'], $post['destination_point'], "opened");
     $userMapper = new UserMapper();
     $carMapper = new CarMapper();
     $result = array();
     if ($roads) {
         foreach ($roads as $road) {
             $user = $userMapper->getUserByEmail($road->driverid);
             $car = $carMapper->getByAutoId($road->autoid);
             $roadMapper->clear();
             $getPoints = $roadMapper->getRoutPointsByRoad($road->id);
             $routPoints = array();
             foreach ($getPoints as $point) {
                 $routPoints[$point->pointqueue] = $point->point;
             }
             $result[] = array('startdate' => $road->startdate, 'start' => $road->start, 'start_adress' => $road->start_adress, 'finish' => $road->finish, 'finish_adress' => $road->finish_adress, 'freeseats' => $road->freeseats, 'price' => $road->price, 'terms' => $road->terms, 'rout_points' => $routPoints, 'username' => $user->username, 'surname' => $user->surname, 'rate' => $user->rate, 'photo' => $user->photo, 'age' => $user->getAge(), 'car_brand' => $car->brand, 'car_model' => $car->model);
             $userMapper->clear();
             $carMapper->clear();
             $roadMapper->clear();
         }
     }
     echo json_encode($result);
 }
示例#2
0
 public function usernameReminder($request, $db)
 {
     $user_mapper = new UserMapper($db, $request);
     $email = filter_var($request->getParameter("email"), FILTER_VALIDATE_EMAIL);
     if (empty($email)) {
         throw new Exception("The email address must be supplied", 400);
     } else {
         $list = $user_mapper->getUserByEmail($email);
         if (is_array($list['users']) && count($list['users'])) {
             $user = $list['users'][0];
             $recipients = array($email);
             $emailService = new UserUsernameReminderEmailService($this->config, $recipients, $user);
             $emailService->sendEmail();
             header("Content-Length: 0", NULL, 202);
             exit;
         }
         throw new Exception("Can't find that email address", 400);
     }
 }
示例#3
0
 /**
  * Allow a user to edit their own record
  *
  * @param Request $request the request.
  * @param         $db      the database.
  *
  * @return mixed
  */
 public function updateUser(Request $request, $db)
 {
     if (false === $request->getUserId()) {
         throw new Exception("You must be logged in to change a user account", 400);
     }
     $userId = $this->getItemId($request);
     $user_mapper = new UserMapper($db, $request);
     if ($user_mapper->thisUserHasAdminOn($userId)) {
         $oauthModel = $request->getOauthModel($db);
         $accessToken = $request->getAccessToken();
         // only trusted clients can change account details
         if (!$oauthModel->isAccessTokenPermittedPasswordGrant($accessToken)) {
             throw new Exception("This client does not have permission to perform this operation", 403);
         }
         // start building up a representation of the user
         $user = array("user_id" => $userId);
         $errors = array();
         // start with passwords
         $password = $request->getParameter('password');
         if (!empty($password)) {
             // they must supply their old password to be allowed to set a new one
             $old_password = $request->getParameter('old_password');
             if (empty($old_password)) {
                 throw new Exception('The field "old_password" is needed to update a user password', 400);
             }
             // is the old password correct before we proceed?
             if (!$oauthModel->reverifyUserPassword($userId, $old_password)) {
                 throw new Exception("The credentials could not be verified", 403);
             }
             $validity = $user_mapper->checkPasswordValidity($password);
             if (true === $validity) {
                 // OK good, go ahead
                 $user['password'] = $password;
             } else {
                 // the password wasn't acceptable, tell the user why
                 $errors = array_merge($errors, $validity);
             }
         }
         $user['full_name'] = filter_var(trim($request->getParameter("full_name")), FILTER_SANITIZE_STRING);
         if (empty($user['full_name'])) {
             $errors[] = "'full_name' is a required field";
         }
         $user['email'] = filter_var(trim($request->getParameter("email")), FILTER_VALIDATE_EMAIL);
         if (empty($user['email'])) {
             $errors[] = "A valid entry for 'email' is required";
         } else {
             // does anyone else have this email?
             $existing_user = $user_mapper->getUserByEmail($user['email']);
             if ($existing_user['users']) {
                 // yes but is that our existing user being found?
                 $old_user = $user_mapper->getUserById($userId);
                 if ($old_user['users'][0]['uri'] != $existing_user['users'][0]['uri']) {
                     // the email address exists and not on this user's account
                     $errors[] = "That email is already associated with another account";
                 }
             }
         }
         // Optional Fields
         $twitter_username = $request->getParameter("twitter_username", false);
         if (false !== $twitter_username) {
             $user['twitter_username'] = filter_var(trim($twitter_username), FILTER_SANITIZE_STRING);
         }
         if ($errors) {
             throw new Exception(implode(". ", $errors), 400);
         } else {
             // now update the user
             if (!$user_mapper->editUser($user, $userId)) {
                 throw new Exception("User not updated", 400);
             }
             // we're good!
             header("Content-Length: 0", null, 204);
             exit;
             // no more content
         }
     }
     throw new Exception("Could not update user", 400);
 }
 public function saveAction()
 {
     $message = ErMessenger::getInstance();
     $request = new Request();
     $request->initRequest();
     $post = $request->getPost();
     if (isset($post)) {
         $userEmail = ErSession::getFromSession('user');
         $userMapper = new UserMapper();
         $user = $userMapper->getUserByEmail($userEmail);
         $user->username = $this->clearStr($post['username']);
         $user->surname = $this->clearStr($post['surname']);
         $user->birthday = $this->clearStr($post['birthday']);
         $user->gendor = $this->clearStr($post['gendor']);
         $user->phone = $this->clearStr($post['phone']);
         if ($post['password_changed']) {
             $user->userpassword = hash("md5", $this->clearStr($post['userpassword']));
         }
         $userMapper->clear();
         if ($userMapper->updateUser($user)) {
             $message->setSucceedMessage('202', 'user/private');
         } else {
             $message->setErrMessage('100', 'user/private');
         }
         echo json_encode($this->fetchUserData($userEmail));
     }
 }