コード例 #1
0
 /**
  * @param UI\Form $form
  *
  * @throws \Aprila\DuplicateEntryException
  */
 public function userFormSucceeded(UI\Form $form)
 {
     try {
         $values = $form->getValues();
         // if we not use images
         if (!isset($values->avatar)) {
             $values['avatar'] = NULL;
         }
         if (isset($values->id) && $values->id > 0) {
             $this->canUser('edit');
             // edit
             $this->userManager->edit($values->id, $values);
             $this->flashMessage('User was updated');
             $this->redirect('edit', $values->id);
         } else {
             $this->canUser('add');
             // add
             $person = $this->userManager->add($values);
             $this->flashMessage('User was added');
             $this->redirect('edit', $person->id);
         }
     } catch (DuplicateEntryException $e) {
         $form->addError('Duplicate username or email.');
     }
 }
コード例 #2
0
 /**
  * @param UI\Form $form
  */
 public function changeEmailStepTwoFormSucceeded(UI\Form $form)
 {
     $values = $form->getValues();
     $newEmail = $this->userManager->changeEmailStepTwo($this->user->id, $values->code_one, $values->code_two);
     if ($newEmail) {
         // change identity email
         $this->user->identity->email = $newEmail;
         $this->flashMessage("Your email was changed");
     } else {
         $this->flashMessage("Ups... Something's wrong", 'error');
     }
 }
コード例 #3
0
 /**
  * @param Form $form
  */
 public function recoveryStepTwoFormSucceeded(Form $form)
 {
     $values = $form->getValues();
     $user = $this->users->getBy(['email' => $values->email]);
     $verifed = $this->users->verifyToken($values->token, $user->id);
     if ($verifed) {
         $newPassword = Random::generate(22);
         $this->users->setUserPassword($newPassword, $user->id);
         $this->getUser()->login($user->username, $newPassword);
         $this->flashMessage('Set your new password.');
         $session = $this->session->getSection('forgotPassword');
         $session->password = $newPassword;
         $this->redirect('UserSettings:password');
     } else {
         $this->flashMessage('Problem with security code. Try again.', 'error');
     }
 }
コード例 #4
0
 public function handleDeleteAvatar()
 {
     $status = $this->mainManager->removeAvatar($this->user->getId());
     if ($status) {
         $this->user->identity->avatar_filename = '';
         $this->user->identity->avatar_namespace = '';
         $this->flashMessage('Photo was removed');
     } else {
         $this->flashMessage('Problem with photo removing', 'error');
     }
     $this->detailObject = $this->mainManager->get($this->getUser()->getId());
     if ($this->isAjax()) {
         $this->redrawControl('profilePhoto');
         $this->redrawControl('layoutAvatar');
     } else {
         $this->redirect('this');
     }
 }
コード例 #5
0
ファイル: UserPresenter.php プロジェクト: Aprila/laboratory
 /**
  * User form factory.
  *
  * @return \Nette\Application\UI\Form
  */
 protected function createComponentUserForm()
 {
     $userRoleArray = $this->mainManager->findUserRoles($this->getUser());
     $form = BaseFormRenderer::factory();
     $form->addText('username', 'Username:'******'Please enter username.');
     $password = $form->addPassword('password', 'Password:'******'class', 'b-password-input--with-strength')->addCondition(Form::FILLED)->addRule(Form::MIN_LENGTH, 'Password min length is %d chars', 6);
     if (!$this->detailObject) {
         $password->setRequired('Please enter password.');
     }
     $form->addText('email', 'E-mail:')->setRequired('Please enter e-mail.')->addRule(Form::EMAIL, 'This is not valid e-mail.');
     $form->addText('name', 'Name:');
     $form->addUpload('avatar', 'Avatar:')->addCondition(Form::FILLED)->addRule(Form::IMAGE, 'Please select image file');
     $form->addSelect("role", "User role:", $userRoleArray)->setRequired('Select user role.');
     if ($this->detailObject) {
         $form->addHidden('id');
         $form->setDefaults($this->detailObject);
     } else {
         $form->addCheckbox("sendInstructions", "Send instructions?");
     }
     $form->addSubmit('send', $this->detailObject ? 'Save user' : 'Add user');
     $form->onSuccess[] = $this->objectFormSucceeded;
     return $form;
 }