private function landing() { $factory = new Factory(); if (\Current_User::isLogged()) { if (!\Current_User::allow('tailgate') && !$factory->isStudent(\Current_User::getUsername())) { return $this->notStudentMessage(); } $student = $factory->getCurrentStudent(); if ($student) { // student is logged in and has account return $this->showStatus($student->getId()); } else { // student is logged in but doesn't have an account return $this->createAccount(); } } else { // student is not logged in return $this->newAccountInformation(); } }
public function post(\Request $request) { $factory = new Factory(); $view = new \View\JsonView(array('success' => true)); if (!$request->isVar('command')) { throw new \Exception('Bad command'); } switch ($request->getVar('command')) { case 'ban': $factory->ban($request->getVar('id'), $request->getVar('reason')); break; case 'unban': $factory->unban($request->getVar('id')); break; case 'ineligible': $factory->ineligible($request->getVar('id'), $request->getVar('reason')); break; case 'eligible': $factory->eligible($request->getVar('id')); break; case 'delete': $factory->delete($request->getVar('id')); break; case 'assign': if (!$this->assign()) { $view = new \View\JsonView(array('success' => false)); } break; default: throw new \Exception('Bad command:' . $request->getVar('command')); } $response = new \Response($view); return $response; }
private function sendEmail($subject, $student_id, $content) { $transport = $this->getSwiftTransport(); $student = StudentFactory::getById($student_id); if (!is_object($student)) { \PHPWS_Core::log("Student #{$student_id} does not exist.", 'tailgate_error.txt'); return; } $message = \Swift_Message::newInstance(); $message->setSubject($subject); $message->setFrom(\Settings::get('tailgate', 'reply_to')); $message->setTo($student->getEmail()); $message->setBody($content, 'text/html'); $mailer = \Swift_Mailer::newInstance($transport); $log = "Subject: {$subject}, To: " . $student->getEmail(); \PHPWS_Core::log($log, 'tailgate_email.log'); $mailer->send($message); }
/** * Randomly assigns winner status to lottery submissions in tg_lottery. * @return integer Number of spots filled */ public function chooseWinners() { $currentGame = GameFactory::getCurrent(); if ($currentGame->getLotteryStarted()) { throw new \Exception('Lottery previously run'); } $currentGame->setLotteryStarted(true); \phpws2\ResourceFactory::saveResource($currentGame); $total_spots = $this->totalAvailableSpots(); $won_spots = $this->getTotalWinners($currentGame->getId()); $spots_left = $total_spots - $won_spots; if ($spots_left === 0) { return $total_spots; } $db = \Database::getDB(); $tbl = $db->addTable('tg_lottery'); $tbl->addField('id'); $tbl->addField('student_id'); $tbl->addFieldConditional('winner', 0); $tbl->addFieldConditional('game_id', $currentGame->getId()); $tbl->randomOrder(); for ($i = 0; $i < $spots_left; $i++) { $row = $db->selectOneRow(); if ($row['id']) { $this->flagWinner($row['id']); Student::incrementWins($row['student_id']); } else { break; } } return $i; }
private function pickSpot() { $student = StudentFactory::getCurrentStudent(); $student_id = $student->getId(); $lotteryFactory = new Factory(); $spot_id = filter_input(INPUT_POST, 'spotId', FILTER_SANITIZE_NUMBER_INT); $lottery_id = filter_input(INPUT_POST, 'lotteryId', FILTER_SANITIZE_NUMBER_INT); $result = $lotteryFactory->pickSpot($lottery_id, $spot_id); $view = new \View\JsonView(array('success' => $result)); return $view; }