[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