예제 #1
0
 /**
  * @param int $userId
  */
 public function actionEdit($userId)
 {
     //neni-li admin, nemuze editovat ostatni
     if ($this->user->id != $userId && !$this->user->isInRole('admin')) {
         $this->flashMessage($this->translator->translate('system.requestNA'), self::MESSAGE_DANGER);
         $this->redirect('default');
     }
     $this->myUser = $this->userRepository->getUserById($userId);
     if (!$this->myUser) {
         $this->flashMessage($this->translator->translate('system.invalidId'), self::MESSAGE_DANGER);
         $this->redirect('default');
     }
     $this->template->title = $this->translator->translate('system.userProfile');
 }
예제 #2
0
 /**
  * @param Nette\Utils\ArrayHash $values Hodnoty z formulare
  * @return boolean Editace uzivatele provedena uspesne?
  */
 protected function editUser($values)
 {
     $result = TRUE;
     $userValues = $values->user;
     $personValues = $values->person;
     try {
         /** @var User $editUser */
         $editUser = $this->repository->getUserById($values->id);
         if (!$editUser) {
             return FALSE;
         }
         // nastaveni atributu
         $editUser->setLogin($userValues->login);
         $editUser->setRole($userValues->role);
         if (!empty($userValues->password)) {
             $editUser->setPassword($userValues->password);
         }
         // osoba
         if ($editUser->person !== NULL) {
             $person = $editUser->person;
             $person->name = $personValues->name;
             $person->surname = $personValues->surname;
         } else {
             $person = new \App\Model\Entities\Person($personValues->name, $personValues->surname);
             $editUser->setPerson($person);
         }
         if ($personValues->avatar->isImage()) {
             $this->imageStorage->setPersonAvatar($person, $personValues->avatar->toImage());
         }
         // ulozeni zmeny
         $this->em->flush();
     } catch (\Exception $e) {
         \Tracy\Debugger::log($e, \Tracy\Debugger::INFO);
         $result = FALSE;
     }
     return $result;
 }