Author: Kris.Wallsmith
Date: 2010-05-24 18:39:39 +0200 (Mon, 24 May 2010)
New Revision: 29608

Added:
   branches/1.3/test/unit/util/fixtures/finder_permissions/
   branches/1.3/test/unit/util/fixtures/finder_permissions/secret/
   branches/1.3/test/unit/util/fixtures/finder_permissions/secret/passwd
   branches/1.4/test/unit/util/fixtures/finder_permissions/
   branches/1.4/test/unit/util/fixtures/finder_permissions/secret/
   branches/1.4/test/unit/util/fixtures/finder_permissions/secret/passwd
Modified:
   branches/1.3/lib/util/sfFinder.class.php
   branches/1.3/test/unit/util/sfFinderTest.php
   branches/1.4/lib/util/sfFinder.class.php
   branches/1.4/test/unit/util/sfFinderTest.php
Log:
[1.3, 1.4] fixed directory permissions issue in sfFinder (closes #8684)

Modified: branches/1.3/lib/util/sfFinder.class.php
===================================================================
--- branches/1.3/lib/util/sfFinder.class.php    2010-05-24 16:15:13 UTC (rev 
29607)
+++ branches/1.3/lib/util/sfFinder.class.php    2010-05-24 16:39:39 UTC (rev 
29608)
@@ -413,7 +413,7 @@
     $files = array();
     $temp_files = array();
     $temp_folders = array();
-    if (is_dir($dir))
+    if (is_dir($dir) && is_readable($dir))
     {
       $current_dir = opendir($dir);
       while (false !== $entryname = readdir($current_dir))

Added: branches/1.3/test/unit/util/fixtures/finder_permissions/secret/passwd
===================================================================
--- branches/1.3/test/unit/util/fixtures/finder_permissions/secret/passwd       
                        (rev 0)
+++ branches/1.3/test/unit/util/fixtures/finder_permissions/secret/passwd       
2010-05-24 16:39:39 UTC (rev 29608)
@@ -0,0 +1 @@
+secret
\ No newline at end of file

Modified: branches/1.3/test/unit/util/sfFinderTest.php
===================================================================
--- branches/1.3/test/unit/util/sfFinderTest.php        2010-05-24 16:15:13 UTC 
(rev 29607)
+++ branches/1.3/test/unit/util/sfFinderTest.php        2010-05-24 16:39:39 UTC 
(rev 29608)
@@ -20,7 +20,7 @@
     return $this->is($a, $b, $message);
   }
 }
-$t = new my_lime_test(38);
+$t = new my_lime_test(39);
 
 require_once($_test_dir.'/../lib/util/sfFinder.class.php');
 
@@ -220,3 +220,10 @@
 
 $finder = sfFinder::type('any')->relative()->prune('dir2');
 $t->arrays_are_equal($finder->in($fixtureDir), $anyWithoutDir2, '->prune() 
ignore all files/directories under the given directory');
+
+// ->in() permissions
+$t->diag('->in() permissions');
+chmod($fixtureDir.'_permissions/secret', 0000);
+$finder = sfFinder::type('file')->relative();
+$t->arrays_are_equal($finder->in($fixtureDir.'_permissions'), array(), '->in() 
ignores directories it cannot read');
+chmod($fixtureDir.'_permissions/secret', 0755);

Modified: branches/1.4/lib/util/sfFinder.class.php
===================================================================
--- branches/1.4/lib/util/sfFinder.class.php    2010-05-24 16:15:13 UTC (rev 
29607)
+++ branches/1.4/lib/util/sfFinder.class.php    2010-05-24 16:39:39 UTC (rev 
29608)
@@ -413,7 +413,7 @@
     $files = array();
     $temp_files = array();
     $temp_folders = array();
-    if (is_dir($dir))
+    if (is_dir($dir) && is_readable($dir))
     {
       $current_dir = opendir($dir);
       while (false !== $entryname = readdir($current_dir))

Added: branches/1.4/test/unit/util/fixtures/finder_permissions/secret/passwd
===================================================================
--- branches/1.4/test/unit/util/fixtures/finder_permissions/secret/passwd       
                        (rev 0)
+++ branches/1.4/test/unit/util/fixtures/finder_permissions/secret/passwd       
2010-05-24 16:39:39 UTC (rev 29608)
@@ -0,0 +1 @@
+secret
\ No newline at end of file

Modified: branches/1.4/test/unit/util/sfFinderTest.php
===================================================================
--- branches/1.4/test/unit/util/sfFinderTest.php        2010-05-24 16:15:13 UTC 
(rev 29607)
+++ branches/1.4/test/unit/util/sfFinderTest.php        2010-05-24 16:39:39 UTC 
(rev 29608)
@@ -20,7 +20,7 @@
     return $this->is($a, $b, $message);
   }
 }
-$t = new my_lime_test(38);
+$t = new my_lime_test(39);
 
 require_once($_test_dir.'/../lib/util/sfFinder.class.php');
 
@@ -220,3 +220,10 @@
 
 $finder = sfFinder::type('any')->relative()->prune('dir2');
 $t->arrays_are_equal($finder->in($fixtureDir), $anyWithoutDir2, '->prune() 
ignore all files/directories under the given directory');
+
+// ->in() permissions
+$t->diag('->in() permissions');
+chmod($fixtureDir.'_permissions/secret', 0000);
+$finder = sfFinder::type('file')->relative();
+$t->arrays_are_equal($finder->in($fixtureDir.'_permissions'), array(), '->in() 
ignores directories it cannot read');
+chmod($fixtureDir.'_permissions/secret', 0755);

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to