]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Controller/SiteCredentialController.php
Merge pull request #4151 from ldidry/fix-4060
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Controller / SiteCredentialController.php
index 98781dab0f84a071e09b4621b0e960ffb6fdb218..4320c5ffe35d1e43872cf27128c585f044e53a67 100644 (file)
@@ -2,12 +2,11 @@
 
 namespace Wallabag\CoreBundle\Controller;
 
-use Symfony\Component\HttpFoundation\Request;
 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
-use Wallabag\UserBundle\Entity\User;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\Routing\Annotation\Route;
 use Wallabag\CoreBundle\Entity\SiteCredential;
+use Wallabag\UserBundle\Entity\User;
 
 /**
  * SiteCredential controller.
@@ -19,11 +18,12 @@ class SiteCredentialController extends Controller
     /**
      * Lists all User entities.
      *
-     * @Route("/", name="site_credentials_index")
-     * @Method("GET")
+     * @Route("/", name="site_credentials_index", methods={"GET"})
      */
     public function indexAction()
     {
+        $this->isSiteCredentialsEnabled();
+
         $credentials = $this->get('wallabag_core.site_credential_repository')->findByUser($this->getUser());
 
         return $this->render('WallabagCoreBundle:SiteCredential:index.html.twig', [
@@ -34,15 +34,14 @@ class SiteCredentialController extends Controller
     /**
      * Creates a new site credential entity.
      *
-     * @Route("/new", name="site_credentials_new")
-     * @Method({"GET", "POST"})
-     *
-     * @param Request $request
+     * @Route("/new", name="site_credentials_new", methods={"GET", "POST"})
      *
      * @return \Symfony\Component\HttpFoundation\Response
      */
     public function newAction(Request $request)
     {
+        $this->isSiteCredentialsEnabled();
+
         $credential = new SiteCredential($this->getUser());
 
         $form = $this->createForm('Wallabag\CoreBundle\Form\Type\SiteCredentialType', $credential);
@@ -73,16 +72,14 @@ class SiteCredentialController extends Controller
     /**
      * Displays a form to edit an existing site credential entity.
      *
-     * @Route("/{id}/edit", name="site_credentials_edit")
-     * @Method({"GET", "POST"})
-     *
-     * @param Request        $request
-     * @param SiteCredential $siteCredential
+     * @Route("/{id}/edit", name="site_credentials_edit", methods={"GET", "POST"})
      *
      * @return \Symfony\Component\HttpFoundation\Response
      */
     public function editAction(Request $request, SiteCredential $siteCredential)
     {
+        $this->isSiteCredentialsEnabled();
+
         $this->checkUserAction($siteCredential);
 
         $deleteForm = $this->createDeleteForm($siteCredential);
@@ -115,16 +112,14 @@ class SiteCredentialController extends Controller
     /**
      * Deletes a site credential entity.
      *
-     * @Route("/{id}", name="site_credentials_delete")
-     * @Method("DELETE")
-     *
-     * @param Request        $request
-     * @param SiteCredential $siteCredential
+     * @Route("/{id}", name="site_credentials_delete", methods={"DELETE"})
      *
      * @return \Symfony\Component\HttpFoundation\RedirectResponse
      */
     public function deleteAction(Request $request, SiteCredential $siteCredential)
     {
+        $this->isSiteCredentialsEnabled();
+
         $this->checkUserAction($siteCredential);
 
         $form = $this->createDeleteForm($siteCredential);
@@ -144,6 +139,16 @@ class SiteCredentialController extends Controller
         return $this->redirectToRoute('site_credentials_index');
     }
 
+    /**
+     * Throw a 404 if the feature is disabled.
+     */
+    private function isSiteCredentialsEnabled()
+    {
+        if (!$this->get('craue_config')->get('restricted_access')) {
+            throw $this->createNotFoundException('Feature "restricted_access" is disabled, controllers too.');
+        }
+    }
+
     /**
      * Creates a form to delete a site credential entity.
      *
@@ -167,7 +172,7 @@ class SiteCredentialController extends Controller
      */
     private function checkUserAction(SiteCredential $siteCredential)
     {
-        if (null === $this->getUser() || $this->getUser()->getId() != $siteCredential->getUser()->getId()) {
+        if (null === $this->getUser() || $this->getUser()->getId() !== $siteCredential->getUser()->getId()) {
             throw $this->createAccessDeniedException('You can not access this site credential.');
         }
     }