Sfoglia il codice sorgente

removed the nestingLevel configuration for file temporary storages

Fabien Potencier 14 anni fa
parent
commit
02c66e658c

+ 0 - 2
src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml

@@ -13,7 +13,6 @@
         <parameter key="form.validation_groups">Default</parameter>
         <parameter key="file.temporary_storage.class">Symfony\Component\HttpFoundation\File\SessionBasedTemporaryStorage</parameter>
         <parameter key="file.temporary_storage.secret">abcdef</parameter>
-        <parameter key="file.temporary_storage.nesting_levels">3</parameter>
         <parameter key="file.temporary_storage.directory"></parameter>
 
     </parameters>
@@ -67,7 +66,6 @@
         <service id="file.temporary_storage" class="%file.temporary_storage.class%">
             <argument type="service" id="session" />
             <argument>%file.temporary_storage.secret%</argument>
-            <argument>%file.temporary_storage.nesting_levels%</argument>
             <argument>%file.temporary_storage.directory%</argument>
         </service>
 

+ 4 - 6
src/Symfony/Component/HttpFoundation/File/SessionBasedTemporaryStorage.php

@@ -12,17 +12,15 @@
 namespace Symfony\Component\HttpFoundation\File;
 
 use Symfony\Component\HttpFoundation\Session;
-use Symfony\Component\HttpFoundation\File\Exception\FileException;
-use Symfony\Component\HttpFoundation\File\Exception\UnexpectedTypeException;
 
 /**
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  */
 class SessionBasedTemporaryStorage extends TemporaryStorage
 {
-    public function __construct(Session $session, $secret, $nestingLevels = 3, $directory = null)
+    public function __construct(Session $session, $secret, $directory = null)
     {
-        parent::__construct($secret, $nestingLevels, $directory);
+        parent::__construct($secret, $directory);
 
         $this->session = $session;
     }
@@ -31,6 +29,6 @@ class SessionBasedTemporaryStorage extends TemporaryStorage
     {
         $this->session->start();
 
-        return $this->session->getId() . parent::generateHashInfo($token);
+        return $this->session->getId().parent::generateHashInfo($token);
     }
-}
+}

+ 4 - 19
src/Symfony/Component/HttpFoundation/File/TemporaryStorage.php

@@ -20,12 +20,9 @@ use Symfony\Component\HttpFoundation\File\Exception\UnexpectedTypeException;
 class TemporaryStorage
 {
     private $directory;
-
     private $secret;
 
-    private $nestingLevels;
-
-    public function __construct($secret, $nestingLevels = 3, $directory = null)
+    public function __construct($secret, $directory = null)
     {
         if (empty($directory)) {
             $directory = sys_get_temp_dir();
@@ -33,12 +30,11 @@ class TemporaryStorage
 
         $this->directory = realpath($directory);
         $this->secret = $secret;
-        $this->nestingLevels = $nestingLevels;
     }
 
     protected function generateHashInfo($token)
     {
-        return $this->secret . $token;
+        return $this->secret.$token;
     }
 
     protected function generateHash($token)
@@ -54,17 +50,6 @@ class TemporaryStorage
 
         $hash = $this->generateHash($token);
 
-        if (strlen($hash) < $this->nestingLevels) {
-            throw new FileException(sprintf(
-                    'For %s nesting levels the hash must have at least %s characters', $this->nestingLevels, $this->nestingLevels));
-        }
-
-        $directory = $this->directory;
-
-        for ($i = 0; $i < ($this->nestingLevels - 1); ++$i) {
-            $directory .= DIRECTORY_SEPARATOR . $hash{$i};
-        }
-
-        return $directory . DIRECTORY_SEPARATOR . substr($hash, $i);
+        return $this->directory.DIRECTORY_SEPARATOR.substr($hash, 0, 2).DIRECTORY_SEPARATOR.substr($hash, 2);
     }
-}
+}