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')); }
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!')); }
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(); }
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(); }
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')); }