Fix restoring shared versions
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
e2a54118df
commit
3940335da7
|
@ -50,6 +50,7 @@ use OCA\Files_Versions\Command\Expire;
|
|||
use OCA\Files_Versions\Events\CreateVersionEvent;
|
||||
use OCA\Files_Versions\Versions\IVersionManager;
|
||||
use OCP\Files\NotFoundException;
|
||||
use OCP\IUser;
|
||||
use OCP\Lock\ILockingProvider;
|
||||
use OCP\User;
|
||||
|
||||
|
@ -325,20 +326,16 @@ class Storage {
|
|||
* @param int $revision revision timestamp
|
||||
* @return bool
|
||||
*/
|
||||
public static function rollback($file, $revision) {
|
||||
public static function rollback(string $file, int $revision, IUser $user) {
|
||||
|
||||
// add expected leading slash
|
||||
$file = '/' . ltrim($file, '/');
|
||||
list($uid, $filename) = self::getUidAndFilename($file);
|
||||
if ($uid === null || trim($filename, '/') === '') {
|
||||
return false;
|
||||
}
|
||||
$filename = '/' . ltrim($file, '/');
|
||||
|
||||
// Fetch the userfolder to trigger view hooks
|
||||
$userFolder = \OC::$server->getUserFolder($uid);
|
||||
$userFolder = \OC::$server->getUserFolder($user->getUID());
|
||||
|
||||
$users_view = new View('/'.$uid);
|
||||
$files_view = new View('/'. User::getUser().'/files');
|
||||
$users_view = new View('/'.$user->getUID());
|
||||
$files_view = new View('/'. $user->getUID().'/files');
|
||||
|
||||
$versionCreated = false;
|
||||
|
||||
|
@ -374,7 +371,7 @@ class Storage {
|
|||
// rollback
|
||||
if (self::copyFileContents($users_view, $fileToRestore, 'files' . $filename)) {
|
||||
$files_view->touch($file, $revision);
|
||||
Storage::scheduleExpire($uid, $file);
|
||||
Storage::scheduleExpire($user->getUID(), $file);
|
||||
|
||||
$node = $userFolder->get($file);
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ class LegacyVersionsBackend implements IVersionBackend {
|
|||
}
|
||||
|
||||
public function rollback(IVersion $version) {
|
||||
return Storage::rollback($version->getVersionPath(), $version->getRevisionId());
|
||||
return Storage::rollback($version->getVersionPath(), $version->getRevisionId(), $version->getUser());
|
||||
}
|
||||
|
||||
private function getVersionFolder(IUser $user): Folder {
|
||||
|
|
Loading…
Reference in New Issue