コード例 #1
0
 /**
  * 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());
 }
コード例 #2
0
 /**
  * @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());
 }