/** * Default action with registration form. * * @access public * @return View * @since 1.0.0 * @version 2.1.0-dev */ public function actionDefault() { // if user is logged, redirect to main page if (UserModel::isLogged()) { Route::factory('home')->redirectTo(); } $this->setTitle(__('Register Your account')); $this->setKeywords(__('register account,login,email,password')); /* @var $oConfig ModelFormConfig */ $oConfig = ModelFormConfig::factory(); $oConfig->noReload(); $oConfig->setFieldsRestriction(['login', 'email', 'password']); $oUser = new UserModel(); $oModelForm = $oUser->form('register', $oConfig); /* @var $oModelForm \ModelForm\User */ $oForm = $oModelForm->generate(); // if form is submitted and is valid if ($oForm->isSubmittedAndValid()) { $this->sendActivationCode($oForm->get('password_confirm'), $oUser); $sMessage = __('Your account has been registered successfully. Activation link has been sent to your mailbox. Click it to make the final activation.'); Session::flash(Router::getCurrentUrl(), $sMessage); } // return registration View return View::factory('user/frontend/register')->bind('oForm', $oForm); }
/** * Action to set new password after e-mail validation. * * @access public * @return View * @since 1.0.0, 2015-02-17 * @version 2.1.0-dev */ public function actionNewPassword() { // fill up breadcrumbs title and other $this->addBreadCrumb(__('New password')); // get code from $_GET $sCode = Router::getParam('code'); // get recovery code from DB $oRecoveryCode = DB::query("SELECT c FROM \\Model\\User\\RecoveryCode c WHERE c.code = :code")->param('code', $sCode)->single(); /* @var $oResult User\RecoveryCode */ // check if code exists if ($oRecoveryCode instanceof User\RecoveryCode) { $this->addToTitle(' - ' . __('New password')); // get user $oUser = $oRecoveryCode->getUser(); // generate form for account access recovery $oConfig = ModelCore\ModelFormConfig::factory()->noReload()->setFieldsRestriction(['password'])->setMessage(__('Your password has been successfully changed to the new one.'))->setAction(Route::factory('password_recovery')->url()); // get form $oModelForm = $oUser->form('new_password', $oConfig); $oForm = $oModelForm->generate(); // check if form is valid if ($oForm->isSubmittedAndValid()) { $oRecoveryCode->remove(); Session::flash(Route::factory('password_recovery')->url(), __('Password has been changed successfully.')); } $oForm->addToPrefix(View::factory('user/frontend/recovery/new_pass_prefix')->render()); // return view return View::factory('base/form')->bind('oForm', $oForm); } else { $this->addToTitle(' - ' . __('Error occured')); return View::factory('user/frontend/recovery/wrong_code'); } }
/** * ACTION - Backend edit action. * * @access public * @return View * @throws Exception\Code403 * @throws Exception\Code404 * @throws Exception\Fatal * @since 1.0.0-alpha * @version 1.0.0-alpha */ public function actionEdit() { $sIdParam = Router::getParam('id'); if ($sIdParam === FALSE) { throw new Exception\Code404(); } $this->addeditJs(); try { $this->loadModelForActions(); } catch (Exception $oExc) { $this->addToTitle(__('Error')); $this->addSystemMessage('XXX', 'danger'); die('TODO'); } // check permissions $this->checkPermissions('edit'); // add title ad breadcrumb $this->alterBreadcrumbsTitleEdit(); $oConfig = new ModelCore\ModelFormConfig(); $oConfig->setMessage(__('Edit operation was successful.')); $oModelForm = $this->getModel()->form('edit', $oConfig); /* @var $oModelForm \Plethora\ModelCore\ModelForm */ $oForm = $oModelForm->generate(); return View::factory($this->sViewForm)->bind('oForm', $oForm)->set('sTitle', $this->getTitle()); }
/** * ACTION - Change user password. * * @access public * @return View * @since 1.3.0, 2015-01-27 * @version 1.0.2-dev, 2015-03-02 */ public function actionChangePassword() { if (!Model\User::isLogged()) { Router::relocateToRoute('home'); } // get user $oUser = Model\User::getLoggedUser(); /* create form instance */ $oModelFormConfig = ModelFormConfig::factory()->setFieldsRestriction(['password'])->setMessage(__('Password changed successfully.')); $oModelForm = $oUser->form('user_profile', $oModelFormConfig); $oForm = $oModelForm->generate(); // add local actions Router\LocalActions::addLocalAction(__('View profile'), 'user_password_change', 'user_profile')->setParameters(['id' => $oUser->getId()]); Router\LocalActions::addLocalAction(__('Edit profile'), 'user_password_change', 'user_profile_edit'); // return profile modification form return View::factory('base/form')->bind('oForm', $oForm); }