[BUGFIX] Fixes media library regression, references #509
Adds missing ACL renames Missing trailing / when managing dirs Fix typo that did not evaluate read/write properly Add missing NEWS entries
This commit is contained in:
@ -471,7 +471,7 @@ switch ($serendipity['GET']['adminAction']) {
|
||||
// preserve moving subdir directories to serendipity_makeFilename(), preserves dir/subdir/ for example
|
||||
$_newDir = $serendipity['POST']['newDir'];
|
||||
$newfile = serendipity_makeFilename(basename($_newDir));
|
||||
$newDir = (dirname($_newDir) != '.') ? dirname($_newDir) . '/' . $newfile : $newfile;
|
||||
$newDir = (dirname($_newDir) != '.') ? dirname($_newDir) . '/' . $newfile : $newfile . '/';
|
||||
$oldDir = serendipity_uploadSecure($serendipity['POST']['oldDir']);
|
||||
|
||||
if ($oldDir != $newDir) {
|
||||
|
@ -2171,6 +2171,25 @@ function serendipity_renameDir($oldDir, $newDir) {
|
||||
$total = null;
|
||||
$images = serendipity_fetchImagesFromDatabase(0, 0, $total, false, false, $oldDir);
|
||||
|
||||
// Perform ACL renames
|
||||
$dirs = serendipity_db_query("SELECT groupid, artifact_id, artifact_type, artifact_mode, artifact_index
|
||||
FROM {$serendipity['dbPrefix']}access
|
||||
WHERE artifact_type = 'directory'
|
||||
AND artifact_index LIKE '" . serendipity_db_escape_string($oldDir) . "%'", false, 'assoc');
|
||||
if (is_array($dirs)) {
|
||||
foreach($dirs AS $dir) {
|
||||
$old = $dir['artifact_index'];
|
||||
$new = preg_replace('@^(' . preg_quote($oldDir) . ')@i', $newDir, $old);
|
||||
serendipity_db_query("UPDATE {$serendipity['dbPrefix']}access
|
||||
SET artifact_index = '" . serendipity_db_escape_string($new) . "'
|
||||
WHERE groupid = '" . serendipity_db_escape_string($dir['groupid']) . "'
|
||||
AND artifact_id = '" . serendipity_db_escape_string($dir['artifact_id']) . "'
|
||||
AND artifact_type = '" . serendipity_db_escape_string($dir['artifact_type']) . "'
|
||||
AND artifact_mode = '" . serendipity_db_escape_string($dir['artifact_mode']) . "'
|
||||
AND artifact_index = '" . serendipity_db_escape_string($dir['artifact_index']) . "'");
|
||||
}
|
||||
}
|
||||
|
||||
if (! file_exists("${imgBase}${newDir}")) {
|
||||
rename("${imgBase}${oldDir}", "${imgBase}${newDir}");
|
||||
|
||||
|
Reference in New Issue
Block a user