Merge pull request #19538 from owncloud/versions-lock
Lock files when rolling back version
This commit is contained in:
commit
60c776070e
|
@ -42,6 +42,7 @@ namespace OCA\Files_Versions;
|
||||||
|
|
||||||
use OCA\Files_Versions\AppInfo\Application;
|
use OCA\Files_Versions\AppInfo\Application;
|
||||||
use OCA\Files_Versions\Command\Expire;
|
use OCA\Files_Versions\Command\Expire;
|
||||||
|
use OCP\Lock\ILockingProvider;
|
||||||
|
|
||||||
class Storage {
|
class Storage {
|
||||||
|
|
||||||
|
@ -337,11 +338,19 @@ class Storage {
|
||||||
* @return bool true for success, false otherwise
|
* @return bool true for success, false otherwise
|
||||||
*/
|
*/
|
||||||
private static function copyFileContents($view, $path1, $path2) {
|
private static function copyFileContents($view, $path1, $path2) {
|
||||||
|
/** @var \OC\Files\Storage\Storage $storage1 */
|
||||||
list($storage1, $internalPath1) = $view->resolvePath($path1);
|
list($storage1, $internalPath1) = $view->resolvePath($path1);
|
||||||
|
/** @var \OC\Files\Storage\Storage $storage2 */
|
||||||
list($storage2, $internalPath2) = $view->resolvePath($path2);
|
list($storage2, $internalPath2) = $view->resolvePath($path2);
|
||||||
|
|
||||||
|
$view->lockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
|
||||||
|
$view->lockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);
|
||||||
|
|
||||||
$result = $storage2->moveFromStorage($storage1, $internalPath1, $internalPath2);
|
$result = $storage2->moveFromStorage($storage1, $internalPath1, $internalPath2);
|
||||||
|
|
||||||
|
$view->unlockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
|
||||||
|
$view->unlockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);
|
||||||
|
|
||||||
return ($result !== false);
|
return ($result !== false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue