Ejemplo n.º 1
0
 /**
  * Function to register new user for the organisation by admin user.
  */
 public function registerUserAction()
 {
     $identity = Zend_Auth::getInstance()->getIdentity();
     $adminId = $identity->user_id;
     $accountId = $identity->account_id;
     $model = new Model_Wep();
     /*
     $admindefaultField = $model->getDefaults('default_field_groups',
                                              'account_id',
                                              $identity->account_id
                                         );
     */
     $defaultFieldGroup = new Iati_WEP_UserPermission();
     $default['fields'] = $defaultFieldGroup->getProperties();
     $form = new Form_Admin_Userregister();
     $form->add($default);
     if ($this->getRequest()->isPost()) {
         try {
             $data = $this->getRequest()->getPost();
             $account_username = $model->getAccountUserName($identity->account_id);
             $user_name = $account_username . "_" . $data['user_name'];
             $usernameExists = $model->userExists('user_name', $user_name);
             $emailExists = $model->userExists('email', $data['email']);
             if (!$form->isValid($data)) {
                 $form->populate($data);
             } else {
                 if (!empty($usernameExists)) {
                     $this->_helper->FlashMessenger->addMessage(array('error' => "Username already exists."));
                     $form->populate($data);
                 } else {
                     if (!empty($emailExists)) {
                         $this->_helper->FlashMessenger->addMessage(array('error' => "User with the email\n                                           address already exists."));
                         $form->populate($data);
                     } else {
                         $model = new Model_Wep();
                         $user['user_name'] = $user_name;
                         $user['password'] = md5($data['password']);
                         $user['role_id'] = 2;
                         //id resembels user as role
                         $user['email'] = $data['email'];
                         $user['account_id'] = $accountId;
                         $user['status'] = 1;
                         $user_id = $model->insertRowsToTable('user', $user);
                         $information['first_name'] = $data['first_name'];
                         $information['middle_name'] = $data['middle_name'];
                         $information['last_name'] = $data['last_name'];
                         $information['user_id'] = $user_id;
                         $profile_id = $model->insertRowsToTable('profile', $information);
                         $i = 0;
                         foreach ($data['default_fields'] as $eachField) {
                             //$defaultKey[$i] = $eachField;
                             //if($each)
                             //$defaultFieldGroup->setProperties($eachField);
                             //$i++;
                             if ($eachField == 'add') {
                                 $defaultFieldGroup->setProperties('add_activity_elements');
                                 $defaultFieldGroup->setProperties('add_activity');
                                 $defaultKey[$i++] = 'add_activity_elements';
                                 $defaultKey[$i++] = 'add_activity';
                             } elseif ($eachField == 'edit') {
                                 $defaultFieldGroup->setProperties('edit_activity_elements');
                                 $defaultFieldGroup->setProperties('edit_activity');
                                 $defaultKey[$i++] = 'edit_activity_elements';
                                 $defaultKey[$i++] = 'edit_activity';
                             } else {
                                 if ($eachField == 'delete') {
                                     $defaultFieldGroup->setProperties('delete_activity');
                                     $defaultKey[$i++] = 'delete_activity';
                                 } else {
                                     $defaultFieldGroup->setProperties($eachField);
                                     $defaultKey[$i++] = $eachField;
                                 }
                             }
                         }
                         $fieldString = serialize($defaultFieldGroup);
                         $defaultFields['object'] = $fieldString;
                         $defaultFields['user_id'] = $user_id;
                         $defaultFieldId = $model->insertRowsToTable('user_permission', $defaultFields);
                         $privilegeFields['resource'] = serialize($defaultKey);
                         $privilegeFields['owner_id'] = $user_id;
                         $privilegeFieldId = $model->insertRowsToTable('Privilege', $privilegeFields);
                         $this->_helper->FlashMessenger->addMessage(array('message' => "Account successfully registered."));
                         $this->_redirect('user/user/login');
                     }
                 }
             }
         } catch (Exception $e) {
             print_r($e);
             exit;
         }
     }
     $this->view->form = $form;
     $this->_helper->layout()->setLayout('layout_wep');
 }