namespace Wallabag\CoreBundle\Controller;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\Routing\Annotation\Route;
use Wallabag\CoreBundle\Entity\SiteCredential;
use Wallabag\UserBundle\Entity\User;
/**
* 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', [
/**
* Creates a new site credential entity.
*
- * @Route("/new", name="site_credentials_new")
- * @Method({"GET", "POST"})
+ * @Route("/new", name="site_credentials_new", methods={"GET", "POST"})
*
* @param Request $request
*
*/
public function newAction(Request $request)
{
+ $this->isSiteCredentialsEnabled();
+
$credential = new SiteCredential($this->getUser());
$form = $this->createForm('Wallabag\CoreBundle\Form\Type\SiteCredentialType', $credential);
/**
* Displays a form to edit an existing site credential entity.
*
- * @Route("/{id}/edit", name="site_credentials_edit")
- * @Method({"GET", "POST"})
+ * @Route("/{id}/edit", name="site_credentials_edit", methods={"GET", "POST"})
*
* @param Request $request
* @param SiteCredential $siteCredential
*/
public function editAction(Request $request, SiteCredential $siteCredential)
{
+ $this->isSiteCredentialsEnabled();
+
$this->checkUserAction($siteCredential);
$deleteForm = $this->createDeleteForm($siteCredential);
/**
* Deletes a site credential entity.
*
- * @Route("/{id}", name="site_credentials_delete")
- * @Method("DELETE")
+ * @Route("/{id}", name="site_credentials_delete", methods={"DELETE"})
*
* @param Request $request
* @param SiteCredential $siteCredential
*/
public function deleteAction(Request $request, SiteCredential $siteCredential)
{
+ $this->isSiteCredentialsEnabled();
+
$this->checkUserAction($siteCredential);
$form = $this->createDeleteForm($siteCredential);
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.
*