]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Try to find bad redirection after delete 2156/head
authorJeremy Benoist <jeremy.benoist@gmail.com>
Fri, 17 Jun 2016 20:18:48 +0000 (22:18 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Fri, 17 Jun 2016 20:18:48 +0000 (22:18 +0200)
Instead of checking for the whole absolute url, we just check with the relative url.
If the referer ends with the relative url of the deleted entry, don't redirect to the referer.

src/Wallabag/CoreBundle/Controller/EntryController.php

index 33b5e2ad03905232dad0df1f0e130275e30853c7..4eb314f7510b68133f418d16dba774abe5b9e6fe 100644 (file)
@@ -406,7 +406,7 @@ class EntryController extends Controller
         $url = $this->generateUrl(
             'view',
             ['id' => $entry->getId()],
-            UrlGeneratorInterface::ABSOLUTE_URL
+            UrlGeneratorInterface::ABSOLUTE_PATH
         );
 
         $em = $this->getDoctrine()->getManager();
@@ -418,8 +418,9 @@ class EntryController extends Controller
             'flashes.entry.notice.entry_deleted'
         );
 
-        // don't redirect user to the deleted entry
-        $to = ($url !== $request->headers->get('referer') ? $request->headers->get('referer') : null);
+        // don't redirect user to the deleted entry (check that the referer doesn't end with the same url)
+        $referer = $request->headers->get('referer');
+        $to = (1 !== preg_match('#'.$url.'$#i', $referer) ? $referer : null);
 
         $redirectUrl = $this->get('wallabag_core.helper.redirect')->to($to);