Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/files_versions/lib/Storage.php11
-rw-r--r--remote.php70
2 files changed, 47 insertions, 34 deletions
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index d0c9394ec87..2e80ccb0b4b 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -210,9 +210,18 @@ class Storage {
$ownerNodes = $ownerFolder->getById($file->getId());
if (count($ownerNodes)) {
$file = current($ownerNodes);
+ $uid = $mount->getShare()->getShareOwner();
}
}
+ /** @var IUserManager $userManager */
+ $userManager = \OC::$server->get(IUserManager::class);
+ $user = $userManager->get($uid);
+
+ if (!$user) {
+ return false;
+ }
+
// no use making versions for empty files
if ($file->getSize() === 0) {
return false;
@@ -227,7 +236,7 @@ class Storage {
/** @var IVersionManager $versionManager */
$versionManager = \OC::$server->get(IVersionManager::class);
- $versionManager->createVersion($file->getOwner(), $file);
+ $versionManager->createVersion($user, $file);
}
diff --git a/remote.php b/remote.php
index 69e3a53eeec..5254b2b7419 100644
--- a/remote.php
+++ b/remote.php
@@ -49,42 +49,46 @@ class RemoteException extends Exception {
* @param Exception|Error $e
*/
function handleException($e) {
- $request = \OC::$server->getRequest();
- // in case the request content type is text/xml - we assume it's a WebDAV request
- $isXmlContentType = strpos($request->getHeader('Content-Type'), 'text/xml');
- if ($isXmlContentType === 0) {
- // fire up a simple server to properly process the exception
- $server = new Server();
- if (!($e instanceof RemoteException)) {
- // we shall not log on RemoteException
- $server->addPlugin(new ExceptionLoggerPlugin('webdav', \OC::$server->getLogger()));
- }
- $server->on('beforeMethod:*', function () use ($e) {
- if ($e instanceof RemoteException) {
- switch ($e->getCode()) {
- case 503:
- throw new ServiceUnavailable($e->getMessage());
- case 404:
- throw new \Sabre\DAV\Exception\NotFound($e->getMessage());
- }
+ try {
+ $request = \OC::$server->getRequest();
+ // in case the request content type is text/xml - we assume it's a WebDAV request
+ $isXmlContentType = strpos($request->getHeader('Content-Type'), 'text/xml');
+ if ($isXmlContentType === 0) {
+ // fire up a simple server to properly process the exception
+ $server = new Server();
+ if (!($e instanceof RemoteException)) {
+ // we shall not log on RemoteException
+ $server->addPlugin(new ExceptionLoggerPlugin('webdav', \OC::$server->getLogger()));
}
- $class = get_class($e);
- $msg = $e->getMessage();
- throw new ServiceUnavailable("$class: $msg");
- });
- $server->exec();
- } else {
- $statusCode = 500;
- if ($e instanceof \OC\ServiceUnavailableException) {
- $statusCode = 503;
- }
- if ($e instanceof RemoteException) {
- // we shall not log on RemoteException
- OC_Template::printErrorPage($e->getMessage(), '', $e->getCode());
+ $server->on('beforeMethod:*', function () use ($e) {
+ if ($e instanceof RemoteException) {
+ switch ($e->getCode()) {
+ case 503:
+ throw new ServiceUnavailable($e->getMessage());
+ case 404:
+ throw new \Sabre\DAV\Exception\NotFound($e->getMessage());
+ }
+ }
+ $class = get_class($e);
+ $msg = $e->getMessage();
+ throw new ServiceUnavailable("$class: $msg");
+ });
+ $server->exec();
} else {
- \OC::$server->getLogger()->logException($e, ['app' => 'remote']);
- OC_Template::printExceptionErrorPage($e, $statusCode);
+ $statusCode = 500;
+ if ($e instanceof \OC\ServiceUnavailableException) {
+ $statusCode = 503;
+ }
+ if ($e instanceof RemoteException) {
+ // we shall not log on RemoteException
+ OC_Template::printErrorPage($e->getMessage(), '', $e->getCode());
+ } else {
+ \OC::$server->getLogger()->logException($e, ['app' => 'remote']);
+ OC_Template::printExceptionErrorPage($e, $statusCode);
+ }
}
+ } catch (\Exception $e) {
+ OC_Template::printExceptionErrorPage($e, 500);
}
}