コード例 #1
0
 public function teamsAction()
 {
     $this->checkLogin();
     if ($this->request->isPost() && $this->request->hasPost("type") && $this->security->checkToken()) {
         $this->session->set("changeOccurred", true);
         $this->session->set("changeSuccessful", true);
         $this->session->set("teamsGenerated", false);
         switch ($this->request->getPost("type")) {
             case 'update':
                 $team = Teams::findFirst(intval($this->request->getPost("id")));
                 if ($team) {
                     $team->setUsername($this->request->getPost("user"));
                     if ($this->request->getPost("pass") != "") {
                         $team->setPassword($this->request->getPost("pass"));
                     }
                     $team->save();
                 } else {
                     $this->session->set("changeSuccessful", false);
                 }
                 break;
             case 'create':
                 $team = new Teams();
                 $team->setUsername($this->request->getPost("user"));
                 $team->setPassword($this->request->getPost("pass"));
                 if (!$team->save()) {
                     $this->session->set("changeSuccessful", false);
                 }
                 break;
             case 'generate':
                 $this->session->set("teamsGenerated", true);
                 $num = intval($this->request->getPost("num"));
                 $name = $this->request->getPost("user");
                 $teams = array();
                 $info = "";
                 for ($i = 0; $i < $num; $i++) {
                     $teams[$i] = new Teams();
                     $teams[$i]->setUsername(str_replace("#", $i + 1, $name));
                     $pass = Phalcon\Text::random(Phalcon\Text::RANDOM_ALNUM, 8);
                     $teams[$i]->setPassword($pass);
                     $info .= $teams[$i]->getUsername() . ":" . $pass . ",";
                     if ($teams[$i]->save() == false) {
                         $this->session->set("changeSuccessful", false);
                         $this->session->set("teamsGenerated", false);
                         for ($j = 0; $j <= $i; $j++) {
                             $teams[$j]->delete();
                         }
                         break;
                     }
                 }
                 $info = substr($info, 0, strlen($info) - 1);
                 $this->session->set("generatedInfo", $info);
                 break;
             case 'delete':
                 $team = Teams::findFirst(intval($this->request->getPost("id")));
                 if ($team->delete() == false) {
                     $this->session->set("changeSuccessful", false);
                 }
                 break;
             default:
                 $this->session->set("changeSuccessful", false);
                 break;
         }
         return $this->response->redirect("/admin/teams");
     } else {
         if ($this->session->has("changeOccurred")) {
             $this->view->changeOccurred = $this->session->get("changeOccurred");
             $this->session->remove("changeOccurred");
         }
         if ($this->session->has("changeSuccessful")) {
             $this->view->changeSuccessful = $this->session->get("changeSuccessful");
             $this->session->remove("changeSuccessful");
         }
         if ($this->session->has("teamsGenerated")) {
             $this->view->teamsGenerated = $this->session->get("teamsGenerated");
             $this->session->remove("teamsGenerated");
         }
         if ($this->session->has("generatedInfo")) {
             $genInfo = $this->session->get("generatedInfo");
             $tempArr = explode(",", $genInfo);
             $genTeams = array();
             for ($i = 0; $i < count($tempArr); $i++) {
                 $tempTeam = explode(":", $tempArr[$i]);
                 $genTeams[$i] = array("username" => $tempTeam[0], "password" => $tempTeam[1]);
             }
             $this->view->genTeams = $genTeams;
             //die(print_r($genInfo));
             $this->session->remove("generatedInfo");
         }
     }
     $this->view->teams = Teams::find();
 }