예제 #1
0
 /**
  * processAction
  *
  * Member registration process
  *
  * @return null
  */
 public function processAction()
 {
     // set json context
     \View::setOutputContext('json');
     \View::lockOutputContext();
     // validate form
     $registerForm = new forms\RegisterForm();
     $registerForm->validate();
     if (!$registerForm->isValid()) {
         throw new \MemberErrorException(array('title' => \View::$language->register_error, 'description' => \View::$language->register_proc_err_descr, 'form_messages' => $registerForm->getMessages()));
     }
     $userData = $registerForm->getData();
     // set new user defaults
     $hCnf = \App::getConfig('hosts');
     $mCnf = \App::getConfig('member-defaults');
     $pass = \common\CryptHelper::generateHash($userData->password);
     $userData->group_id = $mCnf->group_id;
     $userData->cookie = \common\HashHelper::getUniqueKey();
     $userData->password = $pass;
     $userData->time_zone = $mCnf->time_zone;
     $userData->status = $mCnf->status;
     $userData->activation_hash = \common\HashHelper::getUniqueKey();
     $userData->avatar = '//' . $hCnf->st . $mCnf->avatar;
     // create a new user
     $UserModel = \App::getInstance('common\\UserModel');
     $UserModel->createUser($userData);
     // TODO send email notification of account activation
     \App::dump($userData);
     // redirect to complete page
     \Storage::write('__register_complete', true);
     throw new \MemberSuccessException(array('redirection' => '/user/register/complete'));
 }