/**
  * Add a user
  *
  * @view /views/scripts/user/add.phtml
  * @access public
  */
 public function addAction()
 {
     $groups = array();
     foreach ($this->dbGroup->getGroups() as $group) {
         $groups[] = new Admin_Model_DbRow_Group($group);
     }
     $form = new Admin_Form_User_Add($groups);
     $form->setAction('/noc/admin/user/add');
     if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getParams())) {
         $userRow = new Admin_Model_DbRow_User(array('groupid' => $this->getRequest()->getParam('group'), 'name' => $this->getRequest()->getParam('name'), 'username' => $this->getRequest()->getParam('username'), 'email' => $this->getRequest()->getParam('mail'), 'enabled' => $this->getRequest()->getParam('active')));
         $this->dbUser->insert($userRow->toDbArray());
         $this->_redirect('admin/user/index');
     } elseif ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getParams()) === FALSE) {
         $form->setDescription($form->getErrorMessages());
     }
     $this->view->form = $form;
 }
 /**
  * Create the new user in the Database
  *
  * Method does some checks before inserting the user to be sure
  * having valid data
  *
  * @return array
  */
 public function saveNewUserAction()
 {
     // create the validator map
     $validatorMap = array('name' => array('validators' => array(), 'message' => 'Fullname cannot be emtpy'), 'username' => array('validators' => array(), 'message' => 'Username cannot be emtpy'), 'email' => array('validators' => array('EmailAddress'), 'message' => 'E-Mailaddress is empty or not valid'), 'groupid' => array('validators' => array(), 'message' => 'Please select a group'));
     $validate = new App_Validate_Ajax();
     $groupModel = new Admin_Model_DbTable_Groups();
     $userModel = new Admin_Model_DbTable_Users();
     $groupRowSet = $groupModel->find($this->request->getParam('groupid', 0));
     $userRow = $userModel->fetchRowByUserName($this->request->getParam('username', ''));
     if ($validate->isValid($this->request->getParams(), $validatorMap, TRUE) == FALSE || $groupRowSet->count() === 0 || $userRow) {
         $errors = $validate->getMessages();
         if ($groupRowSet->count() === 0) {
             $errors[] = 'No Group selected';
         }
         if ($userRow) {
             $errors[] = 'Username already exists';
         }
         return $this->responseFailure('Failed Saving informations', $errors);
     } else {
         $user = new Admin_Model_DbRow_User($this->request->getParams());
         $userModel->insert($user->toDbArray(array('groupid', 'username', 'password', 'name', 'email', 'enabled')));
         $user->fromArray($userModel->find($userModel->getAdapter()->lastInsertId()));
         return $this->responseSuccess(array());
     }
 }