public function deleteAction(Application $app, Request $request, $accountName, $spaceName, $permissionId) { $space = $app->getSpaceRepository()->findByNameAndAccountName($spaceName, $accountName); if ($space) { $app->getPermissionRepository()->remove($app->getPermissionRepository()->find($permissionId)); } return $app->redirect($app['url_generator']->generate('permission_index', array('accountName' => $accountName, 'spaceName' => $spaceName))); }
private function getSpaceEditForm(Application $app, Request $request, $accountName, $spaceName = null) { $error = $request->query->get('error'); $repo = $app->getSpaceRepository(); $add = false; $spaceName = trim($spaceName); $space = $repo->findByNameAndAccountName($spaceName, $accountName); if (null === $space) { $add = true; $defaults = array('account_name' => $accountName); $spaceClassName = $app['spaceModelClassName']; $space = new $spaceClassName(); $space->setAccountName($accountName); } else { $defaults = array('account_name' => $accountName, 'name' => $space->getName(), 'description' => $space->getDescription()); } $form = $app['form.factory']->createBuilder('form', $defaults)->add('account_name', 'text', array('read_only' => true))->add('name', 'text')->add('description', 'textarea', array('required' => false))->getForm(); // handle form submission $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $space->setName($data['name'])->setDescription($data['description']); if (method_exists($space, 'setCreatedAt')) { $space->setCreatedAt(); } if (!$repo->persist($space)) { return $app->redirect($app['url_generator']->generate('space_add', array('error' => 'Space exists', 'accountName' => $accountName))); } else { // auto-add permission if ($add) { $app->getPermissionRepository()->add($app['current_user']->getName(), $space->getId(), 'ADMIN'); } } return $app->redirect($app['url_generator']->generate('space_index', array('accountName' => $accountName))); } return new Response($app['twig']->render('@BaseTemplates/space/edit.html.twig', array('form' => $form->createView(), 'space' => $space, 'error' => $error, 'accountName' => $accountName, 'nameOfSpace' => $repo->getNameOfSpace(), 'nameOfSpacePl' => $repo->getNameOfSpace(true)))); }