public function clearNotifications(Request $request, Session $session)
 {
     if (!$session->userIsLoggedIn()) {
         return $this->redirectTo('/login');
     }
     Notification::clearForUser($session->activeUser()->id);
     return $this->redirectTo('/dashboard?message=' . urlencode('Notifications cleared'));
 }
Example #2
0
 public function postBuyerFeedback(Request $request, Session $session, $auction_id)
 {
     if (!$session->userIsLoggedIn()) {
         return $this->redirectTo('/login');
     }
     $auction = Auction::getAuctionWithId($auction_id);
     Database::insert('INSERT INTO BuyerFeedback (content, speed_of_payment, communication, auction_id) VALUES (?,?,?,?)', [$request->post['feedback_comment'], $request->post['speed_of_payment'], $request->post['communication'], $auction->id]);
     return $this->redirectTo('/dashboard/?message=' . urlencode('Feedback saved!'));
 }
Example #3
0
 public function processLoginAttempt(Request $request, Session $session)
 {
     if ($session->userIsLoggedIn()) {
         return $this->redirectTo('/dashboard');
     }
     if (!isset($request->post['email']) || !isset($request->post['password'])) {
         return (new View('login', ['errors' => 'Form incomplete']))->render();
     }
     $results = Database::query('SELECT id, password FROM User WHERE email = ?', [$request->post['email']]);
     if (isset($results[0]['id']) && password_verify($request->post['password'], $results[0]['password'])) {
         $id = (int) $results[0]['id'];
         $session->generateSession($id);
         return $this->redirectTo('/dashboard');
     }
     return (new View('login', ['errors' => 'Login Incorrect']))->render();
 }
Example #4
0
 public function processSignup(Request $request, Session $session)
 {
     if ($session->userIsLoggedIn()) {
         return $this->redirectTo('/dashboard');
     }
     if (isset($request->post['email']) && isset($request->post['password']) && (isset($request->post['buyer_account']) || isset($request->post['seller_account'])) && ($request->post['buyer_account'] == 1 || $request->post['seller_account'] == 1)) {
         if (Database::checkExists($request->post['email'], 'email', 'User')) {
             return View::renderView('login', ['signup_errors' => 'Email already exists']);
         }
         Database::insert('INSERT INTO User (email,password) VALUES (?,?)', [$request->post['email'], password_hash($request->post['password'], PASSWORD_DEFAULT)]);
         $user_id = Database::lastID();
         if ($request->post['buyer_account'] == 1) {
             Database::insert('INSERT INTO UserRole (user_id, role_id) VALUES (?,?)', [$user_id, Role::buyer()]);
         }
         if ($request->post['seller_account'] == 1) {
             Database::insert('INSERT INTO UserRole (user_id, role_id) VALUES (?,?)', [$user_id, Role::seller()]);
         }
         $session->generateSession($user_id);
         return $this->redirectTo('/dashboard');
     }
     return View::renderView('login', ['signup_errors' => 'You must complete the signup form']);
 }
 public function getDashboard(Request $request, Session $session)
 {
     if (!$session->userIsLoggedIn()) {
         return $this->redirectTo('/login');
     }
     if ($session->activeUser()->isSeller()) {
         $liveSellerAuctions = Auction::getLiveAuctionsForUser($session->activeUser()->sellerID());
         $completedSellerAuctions = Auction::getCompletedAuctionsForUser($session->activeUser()->sellerID());
         $sellerFeedback = $session->activeUser()->getSellerFeedback();
         $sellerRating = $session->activeUser()->getSellerMeanRating();
     }
     if ($session->activeUser()->isBuyer()) {
         $liveBidBuyerAuctions = Auction::getLiveBidAuctionsForUser($session->activeUser()->buyerID());
         $completedBidBuyerAuctions = Auction::getCompletedBidAuctionsForUser($session->activeUser()->buyerID());
         $liveWatchedBuyerAuctions = Auction::getLiveWatchedAuctionsForUser($session->activeUser()->buyerID());
         $buyerFeedback = $session->activeUser()->getBuyerFeedback();
         $buyerRating = $session->activeUser()->getBuyerMeanRating();
         $recommendations = $session->activeUser()->getRecommendations();
     }
     $view = new View('dashboard', ['liveSellerAuctions' => isset($liveSellerAuctions) ? $liveSellerAuctions : NULL, 'completedSellerAuctions' => isset($completedSellerAuctions) ? $completedSellerAuctions : NULL, 'sellerFeedback' => isset($sellerFeedback) ? $sellerFeedback : NULL, 'sellerRating' => isset($sellerRating) ? $sellerRating : NULL, 'liveBidBuyerAuctions' => isset($liveBidBuyerAuctions) ? $liveBidBuyerAuctions : NULL, 'completedBidBuyerAuctions' => isset($completedBidBuyerAuctions) ? $completedBidBuyerAuctions : NULL, 'liveWatchedBuyerAuctions' => isset($liveWatchedBuyerAuctions) ? $liveWatchedBuyerAuctions : NULL, 'buyerFeedback' => isset($buyerFeedback) ? $buyerFeedback : NULL, 'buyerRating' => isset($buyerRating) ? $buyerRating : NULL, 'recommendations' => isset($recommendations) ? $recommendations : NULL, 'message' => isset($request->get['message']) ? $request->get['message'] : NULL, 'error' => isset($request->get['error']) ? $request->get['error'] : NULL]);
     return $view->render();
 }
Example #6
0
 public function createNewAuction(Request $request, Session $session)
 {
     if (!$session->userIsLoggedIn()) {
         return $this->redirectTo('/login');
     }
     if (!$session->activeUser()->isSeller()) {
         return $this->redirectTo('/dashboard?error=' . urlencode('You must register as a seller to create an auction'));
     }
     $auction_input = $request->post;
     $auction_input['userrole_id'] = $session->activeUser()->sellerID();
     $auction_creator = new AuctionCreator($request);
     $auction_errors = $auction_creator->validateInput($auction_input);
     $errors = [];
     if (count($auction_errors) > 0) {
         $errors[] = 'There was one or more problems with your submission, please go back';
         foreach ($auction_errors as $error) {
             $errors[] = $error;
         }
     }
     if (isset($auction_input['items']) === false) {
         $auction_errors[] = 'Items Missing';
     }
     if (isset($request->files['item_image']['name']) === false || count($request->files['item_image']['name']) !== count($auction_input['items'])) {
         $auction_errors[] = 'Items Images Missing';
     }
     $items = $this->processInput($auction_input['items'], $request->files['item_image']);
     $item_creator = new ItemCreator($request);
     foreach ($items as $key => $item) {
         $item_errors = $item_creator->validateInput($item);
         if (count($item_errors) > 0) {
             foreach ($item_errors as $error) {
                 $errors[] = $error;
             }
         }
     }
     if (count($errors)) {
         return View::renderView('general_error', ['errors' => $errors]);
     }
     $auction_id = $auction_creator->saveInput($auction_input);
     foreach ($items as $key => $item) {
         $item['auction_id'] = $auction_id;
         $item_id = $item_creator->saveInput($item);
     }
     return $this->redirectTo('/dashboard?message=' . urlencode('Auction Created'));
 }