Esempio n. 1
0
 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();
     }
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 /**
  * 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;
 }
Esempio n. 5
0
 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;
 }