/**
  * @param UI\Form $form
  * @throws \Aprila\Model\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) {
             // edit
             $this->userManager->editUser($values->id, $values->email, $values->username, $values->password, $values->role, $values->name, $values->avatar);
             $this->flashMessage('User was updated');
             $this->redirect('edit', $values->id);
         } else {
             // add
             $person = $this->userManager->addUser($values->email, $values->username, $values->password, $values->role, $values->name, $values->avatar);
             $this->flashMessage('User was added');
             //				$form->setValues(array(), TRUE);
             $this->redirect('edit', $person->id);
         }
     } catch (\Aprila\DuplicateEntryException $e) {
         $form->addError('Duplicate username or email.');
         //			$form['username']->addError('Duplicate username.');
         //			$form['username']->setValue($values->username . '2');
     }
 }
 /**
  * @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');
     }
 }
 /**
  * @param UI\Form $form
  */
 public function recoveryStepTwoFormSucceeded(UI\Form $form)
 {
     $values = $form->getValues();
     $user = $this->users->getBy(array('email' => $values->email));
     $verifed = $this->users->verifyToken($values->token, $user->id);
     if ($verifed) {
         $newPassword = Strings::random(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');
     }
 }