mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Merge branch 'MDL-69975' of https://github.com/stronk7/moodle
This commit is contained in:
commit
a81f648ac4
2 changed files with 10 additions and 4 deletions
|
@ -9862,7 +9862,7 @@ function rename_to_unused_name(string $filepath, string $prefix = '_temp_') {
|
||||||
* @return bool success, true also if dir does not exist
|
* @return bool success, true also if dir does not exist
|
||||||
*/
|
*/
|
||||||
function remove_dir($dir, $contentonly=false) {
|
function remove_dir($dir, $contentonly=false) {
|
||||||
if (!file_exists($dir)) {
|
if (!is_dir($dir)) {
|
||||||
// Nothing to do.
|
// Nothing to do.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1498,8 +1498,9 @@ function make_unique_writable_directory($basedir, $exceptiononerror = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Generate a new (hopefully unique) directory name.
|
// Let's use uniqid() because it's "unique enough" (microtime based). The loop does handle repetitions.
|
||||||
$uniquedir = $basedir . DIRECTORY_SEPARATOR . \core\uuid::generate();
|
// Windows and old PHP don't like very long paths, so try to keep this shorter. See MDL-69975.
|
||||||
|
$uniquedir = $basedir . DIRECTORY_SEPARATOR . uniqid();
|
||||||
} while (
|
} while (
|
||||||
// Ensure that basedir is still writable - if we do not check, we could get stuck in a loop here.
|
// Ensure that basedir is still writable - if we do not check, we could get stuck in a loop here.
|
||||||
is_writable($basedir) &&
|
is_writable($basedir) &&
|
||||||
|
@ -1635,7 +1636,12 @@ function get_request_storage_directory($exceptiononerror = true, bool $forcecrea
|
||||||
$createnewdirectory = $forcecreate || !$writabledirectoryexists;
|
$createnewdirectory = $forcecreate || !$writabledirectoryexists;
|
||||||
|
|
||||||
if ($createnewdirectory) {
|
if ($createnewdirectory) {
|
||||||
$basedir = "{$CFG->localrequestdir}/{$CFG->siteidentifier}";
|
|
||||||
|
// Let's add the first chars of siteidentifier only. This is to help separate
|
||||||
|
// paths on systems which host multiple moodles. We don't use the full id
|
||||||
|
// as Windows and old PHP don't like very long paths. See MDL-69975.
|
||||||
|
$basedir = $CFG->localrequestdir . '/' . substr($CFG->siteidentifier, 0, 4);
|
||||||
|
|
||||||
make_writable_directory($basedir);
|
make_writable_directory($basedir);
|
||||||
protect_directory($basedir);
|
protect_directory($basedir);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue