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); } } } }