Example #1
0
 /**
  * This is common function used by add and edit actions (to avoid code duplication).
  *
  * @param User|null $user
  *
  * @return false|object
  */
 private function initForm(User $user = null)
 {
     if (!$user instanceof User) {
         throw new AuthorizationException($this->translate('ERROR_AUTHORIZATION'));
     }
     $form = $this->userForm;
     $form->bind($user);
     $this->getView()->setVariable('form', $form);
     /** @var \Zend\Http\Request $request */
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter($form->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $formData = $form->getData();
             // check for existing email
             $existingEmail = $this->userTable->queryBuilder()->select(['u'])->from('SD\\Admin\\Entity\\User', 'u')->where('u.email = :email')->setParameter(':email', (string) $formData->getEmail())->getQuery()->getResult();
             if (count($existingEmail) > 1) {
                 return $this->setLayoutMessages($this->translate('EMAIL_EXIST') . ' <b>' . $formData->getEmail() . '</b> ' . $this->translate('ALREADY_EXIST'), 'info');
             }
             $this->userTable->saveUser($user);
             $this->setLayoutMessages('&laquo;' . $user->getFullName() . '&raquo; ' . $this->translate('SAVE_SUCCESS'), 'success');
             $this->redirect()->toUrl('/admin/user');
         }
         return $this->setLayoutMessages($form->getMessages(), 'error');
     }
     return false;
 }