Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
 /**
  * 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');
 }