Example #1
0
 /**
  *
  * @param  Nette\Application\UI\Form $form
  */
 public function signupFormSubmitted(Form $form)
 {
     $formValues = $form->getValues();
     $userUsernameRow = $this->userFacade->getByUsername($formValues->username);
     $userEmailRow = $this->userFacade->getByEmail($formValues->email);
     if ($userUsernameRow !== false || $userEmailRow !== false) {
         if ($userUsernameRow !== false) {
             $form['username']->addError('This username is already taken. Please use different one.');
         }
         if ($userEmailRow !== false) {
             $form['email']->addError('This email is already taken. Please use different one.');
         }
     } else {
         $hashedPassword = \Screwfix\Authenticator::calculateHash($formValues->password);
         $userArr = array('username' => $formValues->username, 'role' => 'member', 'email' => $formValues->email, 'password' => $hashedPassword);
         try {
             $this->userFacade->save($userArr);
             $user = $this->getUser();
             if ($formValues->remember) {
                 $user->setExpiration('+14 days', FALSE);
             }
             $user->login($formValues->username, $formValues->password);
             $pattern = $this->adjustPattern($formValues->patternInput['pattern'], $formValues->patternInput['firstDay']);
             $patternFilter = $this->shiftPatternFilterFactory->create($pattern);
             $this->patternFacade->save($user->getId(), $patternFilter);
         } catch (\Exception $ex) {
             $form->addError('Sorry, something went wrong. Please try again.');
         }
         $this->redirect('Home:default');
     }
 }
 public function passwordFormSubmitted(Form $form)
 {
     $formValues = $form->getValues();
     $hashedPassword = \Screwfix\Authenticator::calculateHash($formValues->password, $this->identity->password);
     if ($hashedPassword !== $this->identity->password) {
         $form['password']->addError('Your password was incorrect.');
     } else {
         try {
             $hashedNewPassword = \Screwfix\Authenticator::calculateHash($formValues->newPassword);
             $this->userFacade->update($this->identity->id, array('password' => $hashedNewPassword));
         } catch (Exception $ex) {
             $form->addError('Sorry, something went wrong. Please try again.');
         }
     }
 }