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!'); } }