public function signUpAction() { $request = $this->getRequest(); $signUpForm = new Rabotal_Form_SignUp(); $bootstrap = $this->getInvokeArg('bootstrap'); $options = $bootstrap->getOption('site'); $security = $bootstrap->getOption('secure'); if ($request->isPost() && $signUpForm->isValid($request->getPost())) { $file = $signUpForm->getElement('avatar'); $file->setValueDisabled(true); $file->addFilter(new Rabotal_Filter_File_RenameImage($options['avatar']['path'])); $values = $signUpForm->getValues(); $values['avatar'] = ''; unset($values['retype']); if ($file->isUploaded() && $file->receive()) { $values['avatar'] = substr($file->getFileName(), strlen($options['avatar']['path'])); } $values['password'] = sha1($security['salt'] . $values['password']); $users = new Rabotal_Model_Users(); $usersProfile = new Rabotal_Model_UsersProfile(); $values['date'] = time(); $values['role'] = Rabotal_User_Enum_Roles::ROLE_DEFAULT; $values['status'] = Rabotal_User_Enum_Status::STATUS_DEFAULT; $values['auto_signin_key'] = ''; $profile = array('fullname' => $values['fullname']); unset($values['fullname']); $uid = $users->insert($values); $profile['user_id'] = $uid; $usersProfile->insert($profile); $user = $users->find($uid)->current(); Rabotal_Auth::identityWrite($user); $this->_redirect('/'); } $this->view->signUpForm = $signUpForm; }
private function _signUp($formData) { $security = $this->getInvokeArg('bootstrap')->getOption('secure'); $usersTable = new Rabotal_Model_Users(); $usersProfileTable = new Rabotal_Model_UsersProfile(); $values = array('email' => $formData['email'], 'username' => $usersTable->mklogin(substr($formData['email'], 0, strpos($formData['email'], '@'))), 'password' => sha1($security['salt'] . $formData['password']), 'avatar' => '', 'role' => Rabotal_User_Enum_Roles::ROLE_DEFAULT, 'date' => time(), 'auto_signin_key' => '', 'status' => Rabotal_User_Enum_Status::STATUS_DEFAULT); $userId = $usersTable->insert($values); $usersProfileTable->insert(array('user_id' => $userId)); Rabotal_Auth::identityWrite(array('id' => $userId, 'username' => $values['username'], 'email' => $values['email'])); return true; }