Properly setup the filesystem for put operations (#762)

Properly setup the filesystem for put operations
This commit is contained in:
Julius Härtl 2020-01-07 14:48:20 +01:00 коммит произвёл GitHub
Родитель 4f2c57ff00 86b700cac5
Коммит 9702daaac7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 17 добавлений и 2 удалений

Просмотреть файл

@ -444,9 +444,9 @@ class WopiController extends Controller {
}
$content = fopen('php://input', 'rb');
// Set the user to register the change under his name
$this->userScopeService->setUserScope($wopi->getEditorUid());
$this->userScopeService->setFilesystemScope($isPutRelative ? $wopi->getEditorUid() : $wopi->getOwnerUid());
try {
$this->retryOperation(function () use ($file, $content){
@ -481,6 +481,8 @@ class WopiController extends Controller {
* Just actually routes to the PutFile, the implementation of PutFile
* handles both saving and saving as.* Given an access token and a fileId, replaces the files with the request body.
*
* FIXME Cleanup this code as is a lot of shared logic between putFile and putRelativeFile
*
* @PublicPage
* @NoCSRFRequired
*
@ -582,9 +584,9 @@ class WopiController extends Controller {
}
$content = fopen('php://input', 'rb');
// Set the user to register the change under his name
$this->userScopeService->setUserScope($wopi->getEditorUid());
$this->userScopeService->setFilesystemScope($isPutRelative ? $wopi->getEditorUid() : $wopi->getOwnerUid());
try {
$this->retryOperation(function () use ($file, $content){

Просмотреть файл

@ -52,4 +52,17 @@ class UserScopeService {
}
$this->userSession->setUser($user);
}
/**
* Setup the FS which is needed to emit hooks
*
* This is required for versioning/activity as the legacy filesystem hooks
* are not emitted if filesystem operations are executed though \OCP\Files\Node\File
*
* @param string $owner
*/
public function setFilesystemScope(string $owner): void {
\OC_Util::tearDownFS();
\OC_Util::setupFS($owner);
}
}