[Pkg-owncloud-commits] [owncloud] 367/394: make sure that the version app always work on the users real home folder and not the mount point
David Prévot
taffit at alioth.debian.org
Fri Nov 8 23:12:51 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to annotated tag v4.5.10
in repository owncloud.
commit 8fe2516a347f84d9f237de8848ebc56dfbd2d5bd
Author: Björn Schießle <schiessle at owncloud.com>
Date: Fri Mar 1 11:43:10 2013 +0100
make sure that the version app always work on the users real home folder and not the mount point
---
apps/files_versions/lib/hooks.php | 16 +++++++++-------
apps/files_versions/lib/versions.php | 16 +++++++---------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php
index 500ce0e..beee3f8 100644
--- a/apps/files_versions/lib/hooks.php
+++ b/apps/files_versions/lib/hooks.php
@@ -20,7 +20,7 @@ class Hooks {
public static function write_hook( $params ) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
-
+
$versions = new Storage( new \OC_FilesystemView('') );
$path = $params[\OC_Filesystem::signal_param_path];
@@ -58,14 +58,16 @@ class Hooks {
* of the stored versions along the actual file
*/
public static function rename_hook($params) {
- $versions_fileview = \OCP\Files::getStorage('files_versions');
- $rel_oldpath = $params['oldpath'];
- $abs_oldpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_oldpath.'.v';
- $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$params['newpath'].'.v';
- if(Storage::isversioned($rel_oldpath)) {
+ $versions_fileview = new \OC_FilesystemView('/'.\OCP\User::getUser().'files_versions');
+ list($oldpath_uid, $oldpath) = Storage::getUidAndFilename($params['oldpath']);
+ list($newpath_uid, $newpath) = Storage::getUidAndFilename($params['newpath']);
+
+ $abs_oldpath = \OC_Filesystem::normalizePath(\OC_User::getHome($oldpath_uid).'/files_versions/'.$oldpath.'.v');
+ $abs_newpath = \OC_Filesystem::normalizePath(\OC_User::getHome($newpath_uid).'/files_versions/'.$newpath.'.v');
+ if(Storage::isversioned($oldpath)) {
$info=pathinfo($abs_newpath);
if(!file_exists($info['dirname'])) mkdir($info['dirname'],0750,true);
- $versions = Storage::getVersions($rel_oldpath);
+ $versions = Storage::getVersions($oldpath);
foreach ($versions as $v) {
rename($abs_oldpath.$v['version'], $abs_newpath.$v['version']);
}
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index c438e36..71256e5 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -35,7 +35,7 @@ class Storage {
const DEFAULTMININTERVAL=60; // 1 min
const DEFAULTMAXVERSIONS=50;
- private static function getUidAndFilename($filename)
+ public static function getUidAndFilename($filename)
{
if (\OCP\App::isEnabled('files_sharing')
&& substr($filename, 0, 7) == '/Shared'
@@ -87,13 +87,12 @@ class Storage {
if($files_view->filesize($filename)>\OCP\Config::getSystemValue('files_versionsmaxfilesize', Storage::DEFAULTMAXFILESIZE)) {
return false;
}
-
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
- $versionsFolderName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
+ $versionsFolderName=\OC_User::getHome($uid).'/files_versions';
// check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval)
if ($uid == \OCP\User::getUser()) {
- $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
+ $versionsName=\OC_user::getHome($uid).'/'.$versions_fileview->getInternalPath($filename);
$matches=glob(preg_quote($versionsName).'.v*');
if ( $matches ) {
sort($matches);
@@ -150,9 +149,8 @@ class Storage {
public static function isversioned($filename) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
list($uid, $filename) = self::getUidAndFilename($filename);
- $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
- $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
+ $versionsName=\OC_user::getHome($uid).'/files_versions/'.$filename;
// check for old versions
$matches=glob(preg_quote($versionsName).'.v*');
@@ -179,7 +177,7 @@ class Storage {
list($uid, $filename) = self::getUidAndFilename($filename);
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
- $versionsName = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
+ $versionsName = \OC_User::getHome($uid).'/'.$versions_fileview->getInternalPath($filename);
$versions = array();
// fetch for old versions
$matches = glob( preg_quote($versionsName).'.v*' );
@@ -245,7 +243,7 @@ class Storage {
list($uid, $filename) = self::getUidAndFilename($filename);
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
- $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
+ $versionsName=\OC_User::getHome($uid).'/'.$versions_fileview->getInternalPath($filename);
// check for old versions
$matches = glob( preg_quote($versionsName).'.v*' );
@@ -271,7 +269,7 @@ class Storage {
* @return true/false
*/
public function expireAll() {
- $view = \OCP\Files::getStorage('files_versions');
+ $view = new \OC_FilesystemView('/'.\OCP\User::getUser().'/files_versions');
return $view->deleteAll('', true);
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list