Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * 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');
     }
 }
Пример #3
0
 /**
  * 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());
 }
Пример #4
0
 /**
  * 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);
 }