mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-03-12 20:49:50 +00:00
File::create() does not need to change umask
umask(0) causes all files to be created with 666 permission.
After input from jrbasso and AD7six, this was found to be an
additional code to support caching using file engine.
FileEngine has since moved to SplFile since 2.x and thus umask
juggling is not required anymore.
Refs: f9f1c4df5
This commit is contained in:
parent
0785ace172
commit
74830b9b93
2 changed files with 45 additions and 4 deletions
|
@ -53,6 +53,9 @@ class FileTest extends CakeTestCase {
|
|||
parent::tearDown();
|
||||
$this->File->close();
|
||||
unset($this->File);
|
||||
|
||||
$Folder = new Folder();
|
||||
$Folder->delete(TMP . 'tests' . DS . 'permissions');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -117,12 +120,52 @@ class FileTest extends CakeTestCase {
|
|||
|
||||
$result = $this->File->Folder();
|
||||
$this->assertInstanceOf('Folder', $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* testPermission method
|
||||
*/
|
||||
public function testPermission() {
|
||||
$this->skipIf(DIRECTORY_SEPARATOR === '\\', 'File permissions tests not supported on Windows.');
|
||||
|
||||
$result = $this->File->perms();
|
||||
$expecting = decoct(0644 & ~umask());
|
||||
$dir = TMP . 'tests' . DS . 'permissions' . DS;
|
||||
$Folder = new Folder($dir);
|
||||
|
||||
$old = umask();
|
||||
|
||||
umask(0002);
|
||||
$file = $dir . 'permission_' . uniqid();
|
||||
$expecting = decoct(0664 & ~umask());
|
||||
$File = new File($file, true);
|
||||
$result = $File->perms();
|
||||
$this->assertEquals($expecting, $result);
|
||||
$File->delete();
|
||||
|
||||
umask(0022);
|
||||
$file = $dir . 'permission_' . uniqid();
|
||||
$expecting = decoct(0644 & ~umask());
|
||||
$File = new File($file, true);
|
||||
$result = $File->perms();
|
||||
$this->assertEquals($expecting, $result);
|
||||
$File->delete();
|
||||
|
||||
umask(0422);
|
||||
$file = $dir . 'permission_' . uniqid();
|
||||
$expecting = decoct(0244 & ~umask());
|
||||
$File = new File($file, true);
|
||||
$result = $File->perms();
|
||||
$this->assertEquals($expecting, $result);
|
||||
$File->delete();
|
||||
|
||||
umask(0444);
|
||||
$file = $dir . 'permission_' . uniqid();
|
||||
$expecting = decoct(0222 & ~umask());
|
||||
$File = new File($file, true);
|
||||
$result = $File->perms();
|
||||
$this->assertEquals($expecting, $result);
|
||||
$File->delete();
|
||||
|
||||
umask($old);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -110,9 +110,7 @@ class File {
|
|||
public function create() {
|
||||
$dir = $this->Folder->pwd();
|
||||
if (is_dir($dir) && is_writable($dir) && !$this->exists()) {
|
||||
$old = umask(0);
|
||||
if (touch($this->path)) {
|
||||
umask($old);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue