*/
public function indexAction()
{
+ $this->isSiteCredentialsEnabled();
+
$credentials = $this->get('wallabag_core.site_credential_repository')->findByUser($this->getUser());
return $this->render('WallabagCoreBundle:SiteCredential:index.html.twig', [
*/
public function newAction(Request $request)
{
+ $this->isSiteCredentialsEnabled();
+
$credential = new SiteCredential($this->getUser());
$form = $this->createForm('Wallabag\CoreBundle\Form\Type\SiteCredentialType', $credential);
*/
public function editAction(Request $request, SiteCredential $siteCredential)
{
+ $this->isSiteCredentialsEnabled();
+
$this->checkUserAction($siteCredential);
$deleteForm = $this->createDeleteForm($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.
*
class SiteCredentialControllerTest extends WallabagCoreTestCase
{
+ public function testAccessDeniedBecauseFeatureDisabled()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $client->getContainer()->get('craue_config')->set('restricted_access', 0);
+
+ $client->request('GET', '/site-credentials/');
+
+ $this->assertSame(404, $client->getResponse()->getStatusCode());
+
+ $client->getContainer()->get('craue_config')->set('restricted_access', 1);
+ }
+
public function testListSiteCredential()
{
$this->logInAs('admin');