예제 #1
0
 function addAction()
 {
     // page title
     $this->view->title = "Ajout d'un administrateur";
     // get group data
     $groupsData = Cible_FunctionsAdministrators::getAllAdministratorGroups();
     /********** ACTIONS ***********/
     $returnLink = $this->view->url(array('controller' => 'administrator', 'action' => 'index'));
     $form = new FormExtranetUser(array('baseDir' => $this->view->baseUrl(), 'cancelUrl' => "{$returnLink}"), $groupsData->toArray());
     $form->getElement('cancel')->setAttrib('onclick', 'document.location.href="' . $returnLink . '"');
     $form->getElement("EU_Password")->setRequired(true);
     $form->getElement("EU_Password")->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => "Veuillez entrer un mot de passe")));
     $this->view->form = $form;
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         if ($form->isValid($formData)) {
             // validate username is unique
             $findUser = new ExtranetUsers();
             $select = $findUser->select()->where('EU_Username = ?', $form->getValue('EU_Username'));
             $findUserData = $findUser->fetchAll($select);
             // username is allready use
             if ($findUserData->count() > 0) {
                 $form->getElement('EU_Username')->addError('Un autre utilisateur possède déjà ce nom d\'utilisateur');
             } else {
                 $userData = new ExtranetUsers();
                 $row = $userData->createRow();
                 $row->EU_LName = $form->getValue('EU_LName');
                 $row->EU_FName = $form->getValue('EU_FName');
                 $row->EU_Email = $form->getValue('EU_Email');
                 $row->EU_Username = $form->getValue('EU_Username');
                 $row->EU_Password = md5($form->getValue('EU_Password'));
                 $newInsertID = $row->save();
                 // insert all user and group association for that user
                 if ($formData['groups']) {
                     foreach ($formData['groups'] as $group) {
                         $userGroupAssociationData = new ExtranetUsersGroups();
                         $rowGroup = $userGroupAssociationData->createRow();
                         $rowGroup->EUG_UserID = $newInsertID;
                         $rowGroup->EUG_GroupID = $group;
                         $rowGroup->save();
                     }
                 }
                 header("location:" . $returnLink);
             }
         }
     }
 }