/** * Function to create a new account. * * This function creates a new account, admin user for the account, admin user's profile and sets default values for * the admin user. It also sends mail to the user and the admin. * @param array $userData array of account informatio. * @return int $accountId id of the account created. */ public function registerUser($userData) { $modelWep = new Model_Wep(); $data = array(); $data['email'] = $userData['email']; $data['first_name'] = $userData['first_name']; $data['last_name'] = $userData['last_name']; $data['account_identifier'] = $userData['account_identifier']; $data['user_name'] = $userData['user_name']; $data['password'] = $userData['password']; $data['org_name'] = trim($userData['org_name']); $data['org_address'] = $userData['org_address']; //Save Organisation Info $account['name'] = $data['org_name']; $account['address'] = $data['org_address']; $account['username'] = trim($data['account_identifier']); $account['uniqid'] = md5(date('Y-m-d H:i:s')); $accountId = $modelWep->insertRowsToTable('account', $account); //Save User Info $user['user_name'] = trim($data['user_name']); $user['password'] = md5($data['password']); $user['role_id'] = 1; $user['email'] = $data['email']; $user['account_id'] = $accountId; $user['status'] = 1; $user_id = $modelWep->insertRowsToTable('user', $user); //Save User Profile $admin['first_name'] = $data['first_name']; $admin['last_name'] = $data['last_name']; $admin['user_id'] = $user_id; $admin_id = $modelWep->insertRowsToTable('profile', $admin); //Create defaults $defaults = new Model_Defaults(); $defaults->createDefaults($data, $accountId); //Send notification $notification = new Model_Notification(); $notification->sendRegistrationNotifications($data); return $accountId; }
/** * Function to register an organisation by Superadmin */ public function registerAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $is_admin = false; $identity = $auth->getIdentity(); if ($identity->role == "superadmin") { $this->view->blockManager()->disable('partial/primarymenu.phtml'); $this->view->blockManager()->disable('partial/add-activity-menu.phtml'); $this->view->blockManager()->disable('partial/usermgmtmenu.phtml'); $this->view->blockManager()->disable('partial/published-list.phtml'); $this->view->blockManager()->enable('partial/superadmin-menu.phtml'); $this->view->blockManager()->enable('partial/dashboard.phtml'); $is_admin = true; } } $defaultFieldsValues = new Iati_WEP_AccountDefaultFieldValues(); $default['field_values'] = $defaultFieldsValues->getDefaultFields(); $defaultFieldGroup = new Iati_WEP_AccountDisplayFieldGroup(); $default['fields'] = $defaultFieldGroup->getProperties(); $form = new Form_Wep_Accountregister(); $form->add($default); if ($this->getRequest()->isPost()) { try { $data = $this->getRequest()->getPost(); $model = new Model_Wep(); if (!$form->isValid($data)) { $form->populate($data); } else { //Save Account Info $account['name'] = $data['organisation_name']; $account['address'] = $data['organisation_address']; $account['username'] = $data['organisation_username']; $account['uniqid'] = md5(date('Y-m-d H:i:s')); $account_id = $model->insertRowsToTable('account', $account); //Save User Info $user['user_name'] = trim($data['organisation_username']) . "_admin"; $user['password'] = md5($data['password']); $user['role_id'] = 1; $user['email'] = $data['email']; $user['account_id'] = $account_id; $user['status'] = 1; $user_id = $model->insertRowsToTable('user', $user); //Save User Profile $admin['first_name'] = $data['first_name']; $admin['middle_name'] = $data['middle_name']; $admin['last_name'] = $data['last_name']; $admin['user_id'] = $user_id; $admin_id = $model->insertRowsToTable('profile', $admin); //Save Default Fields $default = new Model_Defaults(); $default->createDefaults($data, $account_id); $privilegeFields['resource'] = serialize($defaultKey); $privilegeFields['owner_id'] = $account_id; $privilegeFieldId = $model->insertRowsToTable('Privilege', $privilegeFields); //Send notification $data['user_name'] = $user['user_name']; $notification = new Model_Notification(); $notification->sendRegistrationNotifications($data); $this->_helper->FlashMessenger->addMessage(array('message' => "Account successfully registered.")); $this->_redirect('admin/list-organisation'); } } catch (Exception $e) { print $e->getMessage(); } } // Populate form with basic recommended default groups. $basic['default_fields'] = Iati_WEP_AccountDisplayFieldGroup::$defaults; $form->populate($basic); $this->view->form = $form; $this->view->blockManager()->disable('partial/primarymenu.phtml'); }