parent
d40ffc5aac
commit
05523b76c0
|
@ -130,8 +130,12 @@ class Keymanager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// try reusing key file if part file
|
||||||
|
if(self::isPartialFilePath($targetPath)) {
|
||||||
|
$result = $view->file_put_contents( $basePath . '/' . self::fixPartialFilePath($targetPath) . '.key', $catfile );
|
||||||
|
} else {
|
||||||
$result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
|
$result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
|
||||||
|
}
|
||||||
|
|
||||||
\OC_FileProxy::$enabled = $proxyStatus;
|
\OC_FileProxy::$enabled = $proxyStatus;
|
||||||
|
|
||||||
|
@ -139,6 +143,37 @@ class Keymanager {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Remove .path extension from a file path
|
||||||
|
* @param string $path Path that may identify a .part file
|
||||||
|
* @return string File path without .part extension
|
||||||
|
* @note this is needed for reusing keys
|
||||||
|
*/
|
||||||
|
public static function fixPartialFilePath($path)
|
||||||
|
{
|
||||||
|
if (preg_match('/\.part$/', $path)) {
|
||||||
|
|
||||||
|
$newLength = strlen($path) - 5;
|
||||||
|
$fPath = substr($path, 0, $newLength);
|
||||||
|
|
||||||
|
return $fPath;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
return $path;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function isPartialFilePath($path)
|
||||||
|
{
|
||||||
|
if (preg_match('/\.part$/', $path)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief retrieve keyfile for an encrypted file
|
* @brief retrieve keyfile for an encrypted file
|
||||||
* @param \OC_FilesystemView $view
|
* @param \OC_FilesystemView $view
|
||||||
|
@ -151,6 +186,14 @@ class Keymanager {
|
||||||
*/
|
*/
|
||||||
public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) {
|
public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) {
|
||||||
|
|
||||||
|
// try reusing key file if part file
|
||||||
|
if(self::isPartialFilePath($filePath)) {
|
||||||
|
$result = self::getFileKey($view, $userId, self::fixPartialFilePath($filePath));
|
||||||
|
if($result) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$util = new Util($view, \OCP\User::getUser());
|
$util = new Util($view, \OCP\User::getUser());
|
||||||
list($owner, $filename) = $util->getUidAndFilename($filePath);
|
list($owner, $filename) = $util->getUidAndFilename($filePath);
|
||||||
$filePath_f = ltrim( $filename, '/' );
|
$filePath_f = ltrim( $filename, '/' );
|
||||||
|
@ -296,7 +339,12 @@ class Keymanager {
|
||||||
|
|
||||||
$shareKeyPath = self::keySetPreparation( $view, $filename, $basePath, $owner );
|
$shareKeyPath = self::keySetPreparation( $view, $filename, $basePath, $owner );
|
||||||
|
|
||||||
|
// try reusing key file if part file
|
||||||
|
if(self::isPartialFilePath($shareKeyPath)) {
|
||||||
|
$writePath = $basePath . '/' . self::fixPartialFilePath($shareKeyPath) . '.' . $userId . '.shareKey';
|
||||||
|
} else {
|
||||||
$writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey';
|
$writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey';
|
||||||
|
}
|
||||||
|
|
||||||
$proxyStatus = \OC_FileProxy::$enabled;
|
$proxyStatus = \OC_FileProxy::$enabled;
|
||||||
\OC_FileProxy::$enabled = false;
|
\OC_FileProxy::$enabled = false;
|
||||||
|
@ -359,6 +407,14 @@ class Keymanager {
|
||||||
*/
|
*/
|
||||||
public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) {
|
public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) {
|
||||||
|
|
||||||
|
// try reusing key file if part file
|
||||||
|
if(self::isPartialFilePath($filePath)) {
|
||||||
|
$result = self::getShareKey($view, $userId, self::fixPartialFilePath($filePath));
|
||||||
|
if($result) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$proxyStatus = \OC_FileProxy::$enabled;
|
$proxyStatus = \OC_FileProxy::$enabled;
|
||||||
\OC_FileProxy::$enabled = false;
|
\OC_FileProxy::$enabled = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue