/** * 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'); }