Merge pull request #15288 from owncloud/check-datadir-relative
Check for relative datadirectory path
This commit is contained in:
commit
3f891c2650
|
@ -886,17 +886,23 @@ class OC_Util {
|
||||||
* checking the existence of the ".ocdata" file.
|
* checking the existence of the ".ocdata" file.
|
||||||
*
|
*
|
||||||
* @param string $dataDirectory data directory path
|
* @param string $dataDirectory data directory path
|
||||||
* @return bool true if the data directory is valid, false otherwise
|
* @return array errors found
|
||||||
*/
|
*/
|
||||||
public static function checkDataDirectoryValidity($dataDirectory) {
|
public static function checkDataDirectoryValidity($dataDirectory) {
|
||||||
$l = \OC::$server->getL10N('lib');
|
$l = \OC::$server->getL10N('lib');
|
||||||
$errors = array();
|
$errors = [];
|
||||||
|
if (!self::runningOnWindows() && $dataDirectory[0] !== '/') {
|
||||||
|
$errors[] = [
|
||||||
|
'error' => $l->t('Data directory (%s) must be an absolute path', [$dataDirectory]),
|
||||||
|
'hint' => $l->t('Check the value of "datadirectory" in your configuration')
|
||||||
|
];
|
||||||
|
}
|
||||||
if (!file_exists($dataDirectory . '/.ocdata')) {
|
if (!file_exists($dataDirectory . '/.ocdata')) {
|
||||||
$errors[] = array(
|
$errors[] = [
|
||||||
'error' => $l->t('Data directory (%s) is invalid', array($dataDirectory)),
|
'error' => $l->t('Data directory (%s) is invalid', [$dataDirectory]),
|
||||||
'hint' => $l->t('Please check that the data directory contains a file' .
|
'hint' => $l->t('Please check that the data directory contains a file' .
|
||||||
' ".ocdata" in its root.')
|
' ".ocdata" in its root.')
|
||||||
);
|
];
|
||||||
}
|
}
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
|
@ -419,6 +419,25 @@ class Test_Util extends \Test\TestCase {
|
||||||
|
|
||||||
$this->assertFalse(\OCP\Util::needUpgrade());
|
$this->assertFalse(\OCP\Util::needUpgrade());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testCheckDataDirectoryValidity() {
|
||||||
|
$dataDir = \OCP\Files::tmpFolder();
|
||||||
|
touch($dataDir . '/.ocdata');
|
||||||
|
$errors = \OC_Util::checkDataDirectoryValidity($dataDir);
|
||||||
|
$this->assertEmpty($errors);
|
||||||
|
\OCP\Files::rmdirr($dataDir);
|
||||||
|
|
||||||
|
$dataDir = \OCP\Files::tmpFolder();
|
||||||
|
// no touch
|
||||||
|
$errors = \OC_Util::checkDataDirectoryValidity($dataDir);
|
||||||
|
$this->assertNotEmpty($errors);
|
||||||
|
\OCP\Files::rmdirr($dataDir);
|
||||||
|
|
||||||
|
if (!\OC_Util::runningOnWindows()) {
|
||||||
|
$errors = \OC_Util::checkDataDirectoryValidity('relative/path');
|
||||||
|
$this->assertNotEmpty($errors);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue