Exemplo n.º 1
0
 function Create($email, $firstname, $lastname, $phone, $password, $repassword, $sendButton = null)
 {
     $repassword = $repassword == "null" ? null : $repassword;
     $agent = new Agent();
     $agent->set($firstname, $lastname, $email, $phone, $password);
     $agentModel = new AgentModel($agent);
     $list = $agentModel->GetUsers();
     $this->agentModelView->agent = $agent;
     $this->agentModelView->agentList = $list;
     if ($agent->validated()) {
         if ($password != $repassword) {
             Session::set("warning", " Password mis-matched, re-enter passwords again!");
             return $this->View($this->agentModelView, "Agent", "Create");
         } else {
             $this->agentModelView->agentDbModel = $agentModel;
             if ($agentModel->Exists()) {
                 Session::set("warning", "The user with the given email address [{$email}] already exists!");
             } else {
                 try {
                     //else create the user
                     if ($agentModel->Create()) {
                         $sessionID = Validator::UniqueKey(20);
                         $agentModel->SaveVerificationCode($email, $sessionID);
                         //create a barcode
                         $param = new ArrayIterator();
                         $param->offsetSet("username", $agent->email);
                         $param->offsetSet("verificationCode", $sessionID);
                         $url = ContextManager::CreateURL("Agent", "Login", $param);
                         $imgPath = ContextManager::CreateQRBarcode($url, $agent->agentId);
                         if ($this->_sendVerificationEmail($agent, $sessionID, $imgPath)) {
                             //navigate to comfirmation page
                             return $this->View($agent, "Agent", "Confirmation");
                         } else {
                             Session::set("warning", "could not send mail ");
                             $agentModel->DeleteAgent($email);
                         }
                     }
                 } catch (Exception $err) {
                     Session::set("warning", $err->getMessage());
                 }
             }
         }
         // create a database record here
     } else {
         Session::set("warning", $agent->getError());
     }
     return $this->View($this->agentModelView, "Agent", "Create");
 }