/** * Checks if sufficient permissions are set to access the resource * Source must be readable, temporary read or writable, destination writable * * @param Model $Model * @param array $field * @return boolean */ function checkAccess(&$Model, $field) { extract($this->runtime[$Model->alias]); if (MediaValidation::file($source['file'], true)) { if (!MediaValidation::access($source['file'], 'r')) { return false; } } else { if (!MediaValidation::access($source['permission'], 'r')) { return false; } } if (!empty($temporary)) { if (MediaValidation::file($temporary['file'], true)) { if (!MediaValidation::access($temporary['file'], 'r')) { return false; } } elseif (MediaValidation::folder($temporary['dirname'], true)) { if (!MediaValidation::access($temporary['dirname'], 'w')) { return false; } } } if (!MediaValidation::access($destination['dirname'], 'w')) { return false; } return true; }
function testFolder() { $file = dirname(__FILE__); $result = MediaValidation::folder($file); $this->assertTrue($result); $file = $this->TestData->getFile('image-jpg.jpg'); $result = MediaValidation::folder($file, false); $this->assertTrue($result); $file = DS . 'i-am-not-a-file.png'; $result = MediaValidation::folder($file); $this->assertFalse($result); $file = DS; $result = MediaValidation::folder($file); $this->assertTrue($result); $file = DS; $result = MediaValidation::folder($file, false); $this->assertTrue($result); $file = DS . DS . DS . DS; $result = MediaValidation::folder($file, false); $this->assertTrue($result); }
/** * Checks if sufficient permissions are set to access the resource * Source must be readable, temporary read or writable, destination writable * * @param Model $Model * @param array $field * @return boolean */ public function checkAccess(Model $Model, $field) { extract($this->runtime[$Model->alias]); /* @var $source array */ /* @var $temporary string */ /* @var $destination string */ /* @var $hasPerformed boolean */ if (MediaValidation::file($source['file'], true)) { if (!MediaValidation::access($source['file'], 'r')) { return false; } } else { if (!MediaValidation::access($source['permission'], 'r')) { return false; } } if (!empty($temporary)) { if (MediaValidation::file($temporary['file'], true)) { if (!MediaValidation::access($temporary['file'], 'r')) { return false; } } elseif (MediaValidation::folder($temporary['dirname'], true)) { if (!MediaValidation::access($temporary['dirname'], 'w')) { return false; } } } if (!MediaValidation::access($destination['dirname'], 'w')) { return false; } return true; }
public function testFolder() { $file = dirname(__FILE__); $result = MediaValidation::folder($file); $this->assertTrue($result); $file = $this->Data->getFile('image-jpg.jpg'); $result = MediaValidation::folder($file, false); $this->assertTrue($result); $file = $this->Data->settings['base'] . 'i-am-not-a-file.png'; $result = MediaValidation::folder($file); $this->assertFalse($result); $file = TMP; $result = MediaValidation::folder($file); $this->assertTrue($result); $file = TMP; $result = MediaValidation::folder($file, false); $this->assertTrue($result); $file = TMP . DS . DS . DS; $result = MediaValidation::folder($file, false); $this->assertTrue($result); }