/** * Delete a aclClass * * @param Entity\AclClass $aclClass * * @Route( * "/{classType}/{index}", * requirements={ "_method" = "DELETE"} * ) * * @Route( * "/{classType}/{index}/delete.{_format}", * name="zym_security_acl_entries_delete", * defaults = { * "_format" = "html" * }, * requirements = { * "_format" = "html|json|ajax" * } * ) * * @Template() * * @SecureParam(name="aclClass", permissions="DELETE") */ public function deleteAction(Entity\AclClass $aclClass, $index) { $origAclClass = clone $aclClass; $aclProvider = $this->get('security.acl.provider'); $oid = new ObjectIdentity('class', $aclClass->getClassType()); /* @var $acl \Symfony\Component\Security\Acl\Domain\Acl */ $acl = $aclProvider->findAcl($oid); $classAces = $acl->getClassAces(); if (!isset($classAces[$index])) { throw $this->createNotFoundException('Index does not exist'); } $classAce = clone $classAces[$index]; $form = $this->createForm(new Form\DeleteType(), $classAce); $request = $this->get('request'); if ($request->getMethod() == 'POST') { $form->bind($request); if ($form->isValid()) { $acl->deleteClassAce($index); $aclProvider->updateAcl($acl); $translator = $this->get('translator'); $this->get('session')->setFlash($translator->trans('Acl Entry Deleted'), 'success'); $referer = $request->headers->get('referer'); return $this->redirect($referer); } } if ($request->getMethod() == 'DELETE') { $acl->deleteClassAce($index); $aclProvider->updateAcl($acl); return $this->redirect($this->generateUrl('zym_security_acl_entries')); } return array('aclClass' => $origAclClass, 'index' => $index, 'form' => $form->createView()); }
/** * @Route("/{classType}/edit/{index}", name="zym_security_acl_entries_edit") * @Template() * * @SecureParam(name="aclClass", permissions="EDIT") */ public function editAction(Entity\AclClass $aclClass, $index) { $origAclClass = clone $aclClass; $aclProvider = $this->get('security.acl.provider'); $oid = new ObjectIdentity('class', $aclClass->getClassType()); $acl = $aclProvider->findAcl($oid); $classAces = $acl->getClassAces(); if (!isset($classAces[$index])) { throw $this->createNotFoundException('Index does not exist'); } $classAce = clone $classAces[$index]; $form = $this->createForm(new Form\AclEntryType(), $classAce); $request = $this->get('request'); if ($request->getMethod() == 'POST') { $form->bind($request); if ($form->isValid()) { $acl->updateClassAce($index, $classAce->getMask()); $aclProvider->updateAcl($acl); return $this->redirect($this->generateUrl('zym_security_acl_entries')); } } return array('aclClass' => $origAclClass, 'index' => $index, 'form' => $form->createView()); }