Ejemplo n.º 1
0
 public function editUserFormSubmitted(Form $form)
 {
     $values = $form->getValues();
     /** test permissions */
     $user = $this->getUser()->isLoggedIn() ? $this->getUser()->getIdentity()->getRoles() : NULL;
     if (!empty($user['admin'])) {
         if (isset($values->deleteUser) && $values->deleteUser == 1) {
             $this->userRepository->delete($values->editedId);
             $this->flashMessage('Uživatel ' . $values->editedUsername . ' byl smazán.', 'success');
         } else {
             /** is changed password? */
             if (!empty($values->password)) {
                 $this->userRepository->setPassword($values->editedId, $values->password);
             }
             /** save admin permission? */
             if (isset($values->isAdmin) && $this->getUser()->getId() != $values->editedId) {
                 $this->userRepository->setAdmin($values->editedId, $values->isAdmin);
             }
             /** set permissions for pages */
             foreach ($this->pages as $url => $page) {
                 $level = $values['PERM' . $url];
                 $this->permissionRepository->setLevel($values->editedId, $url, $level);
             }
             /** redirect */
             $this->flashMessage('Uživatel ' . $values->editedUsername . ' byl upraven.', 'success');
         }
         /** redirect */
         if (!$this->isAjax()) {
             $this->redirect('this');
         } else {
             $this->invalidateControl('selected');
             $this->invalidateControl('selecting');
         }
     } else {
         throw new Exception('Unauthorized access to selectUserForm!');
     }
 }