/** * @param array $formData * @param int $roleId * * @return \Symfony\Component\HttpFoundation\RedirectResponse * @throws \Doctrine\DBAL\ConnectionException */ protected function executePost(array $formData, $roleId) { return $this->actionHelper->handleEditPostAction(function () use($formData, $roleId) { $this->roleFormValidation->setRoleId($roleId)->validate($formData); $formData['parent_id'] = $roleId === 1 ? 0 : $formData['parent_id']; $result = $this->rolesModel->save($formData, $roleId); $this->rulesModel->updateRules($formData['privileges'], $roleId); return $result; }); }
/** * @param string $action * * @return array|\Symfony\Component\HttpFoundation\JsonResponse|\Symfony\Component\HttpFoundation\RedirectResponse * @throws \ACP3\Core\Controller\Exception\ResultNotExistsException */ public function execute($action = '') { return $this->actionHelper->handleCustomDeleteAction($action, function (array $items) { $bool = $levelNotDeletable = false; foreach ($items as $item) { if (in_array($item, [1, 2, 4]) === true) { $levelNotDeletable = true; } else { $bool = $this->rolesModel->delete($item); } } $this->permissionsCache->getCacheDriver()->deleteAll(); if ($levelNotDeletable === true) { $result = !$levelNotDeletable; $text = $this->translator->t('permissions', 'role_not_deletable'); } else { $result = $bool !== false; $text = $this->translator->t('system', $result ? 'delete_success' : 'delete_error'); } return $this->redirectMessages()->setMessage($result, $text); }); }