Browse Source

Bug fix: le remplacement du fr -> en dans l'url referer est maintenant protégé des urls ou le slug peut faire foiréer.

bastien 13 years ago
parent
commit
91f571dad7
1 changed files with 20 additions and 3 deletions
  1. 20 3
      src/Muzich/CoreBundle/Controller/CoreController.php

+ 20 - 3
src/Muzich/CoreBundle/Controller/CoreController.php View File

@@ -37,9 +37,26 @@ class CoreController extends Controller
37 37
     }
38 38
     else
39 39
     {
40
-      // Sinon on retourne sur l'url précédent en modifiant la langue
41
-      $url = str_replace("/$old", "/$language", 
42
-        $this->container->get('request')->headers->get('referer'));
40
+      
41
+      // Sinon on doit rediriger l'utilisateur vers son url d'origine
42
+      
43
+      if (preg_match('/user/', $url_referer))
44
+      {
45
+        $search = "/$old/user/";
46
+        $replace = "/$language/user/";
47
+      }
48
+      elseif (preg_match('/group/', $url_referer))
49
+      {
50
+        $search = "/$old/group/";
51
+        $replace = "/$language/group/";
52
+      }
53
+      else
54
+      {
55
+        $search = "/$old";
56
+        $replace = "/$language";
57
+      }
58
+      
59
+      $url = str_replace($search, $replace, $url_referer);
43 60
     }
44 61
     
45 62
     return new RedirectResponse($url);