getDoctrine()->getRepository('PackagistWebBundle:Package'); /** @var $package Package */ $package = $packageRepo->findOneByName($name); if (!$package) { throw $this->createNotFoundException("The requested package, $name, could not be found."); } if (!$package->getMaintainers()->contains($this->getUser()) && !$this->get('security.context')->isGranted('ROLE_EDIT_PACKAGES')) { throw new AccessDeniedException; } $form = $this->createFormBuilder($package, array("validation_groups" => array("Update"))) ->add("repository", "text") ->getForm(); if ($req->isMethod("POST")) { $form->bind($req); if ($form->isValid()) { // Force updating of packages once the package is viewed after the redirect. $package->setCrawledAt(null); $em = $this->getDoctrine()->getManager(); $em->persist($package); $em->flush(); $this->get("session")->getFlashBag()->set("success", "Changes saved."); return $this->redirect( $this->generateUrl("view_package", array("name" => $package->getName())) ); } } return array( "package" => $package, "form" => $form->createView() ); } }