Merge pull request #2007 from owncloud/fix_1834_master
make sure that the version app always works on the users real home folder [master]
This commit is contained in:
commit
87c8fff2d2
|
@ -59,7 +59,8 @@ if ( isset( $_GET['path'] ) ) {
|
||||||
|
|
||||||
// show the history only if there is something to show
|
// show the history only if there is something to show
|
||||||
$count = 999; //show the newest revisions
|
$count = 999; //show the newest revisions
|
||||||
if( ($versions = OCA\Files_Versions\Storage::getVersions( $path, $count)) ) {
|
list ($uid, $filename) = OCA\Files_Versions\Storage::getUidAndFilename($path);
|
||||||
|
if( ($versions = OCA\Files_Versions\Storage::getVersions($uid, $filename, $count)) ) {
|
||||||
|
|
||||||
$tmpl->assign( 'versions', array_reverse( $versions ) );
|
$tmpl->assign( 'versions', array_reverse( $versions ) );
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@ class Storage {
|
||||||
|
|
||||||
$files_view = new \OC\Files\View('/'.$uid .'/files');
|
$files_view = new \OC\Files\View('/'.$uid .'/files');
|
||||||
$users_view = new \OC\Files\View('/'.$uid);
|
$users_view = new \OC\Files\View('/'.$uid);
|
||||||
|
$versions_view = new \OC\Files\View('/'.$uid.'/files_versions');
|
||||||
|
|
||||||
// check if filename is a directory
|
// check if filename is a directory
|
||||||
if($files_view->is_dir($filename)) {
|
if($files_view->is_dir($filename)) {
|
||||||
|
@ -99,7 +100,7 @@ class Storage {
|
||||||
|
|
||||||
// create all parent folders
|
// create all parent folders
|
||||||
$info=pathinfo($filename);
|
$info=pathinfo($filename);
|
||||||
$versionsFolderName=\OCP\Config::getSystemValue('datadirectory').$users_view->getAbsolutePath('files_versions/');
|
$versionsFolderName=$versions_view->getLocalFolder('');
|
||||||
if(!file_exists($versionsFolderName.'/'.$info['dirname'])) {
|
if(!file_exists($versionsFolderName.'/'.$info['dirname'])) {
|
||||||
mkdir($versionsFolderName.'/'.$info['dirname'], 0750, true);
|
mkdir($versionsFolderName.'/'.$info['dirname'], 0750, true);
|
||||||
}
|
}
|
||||||
|
@ -130,7 +131,7 @@ class Storage {
|
||||||
list($uid, $filename) = self::getUidAndFilename($filename);
|
list($uid, $filename) = self::getUidAndFilename($filename);
|
||||||
$versions_fileview = new \OC\Files\View('/'.$uid .'/files_versions');
|
$versions_fileview = new \OC\Files\View('/'.$uid .'/files_versions');
|
||||||
|
|
||||||
$abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$filename.'.v';
|
$abs_path = $versions_fileview->getLocalFile($filename.'.v');
|
||||||
if( ($versions = self::getVersions($uid, $filename)) ) {
|
if( ($versions = self::getVersions($uid, $filename)) ) {
|
||||||
$versionsSize = self::getVersionsSize($uid);
|
$versionsSize = self::getVersionsSize($uid);
|
||||||
if ( $versionsSize === false || $versionsSize < 0 ) {
|
if ( $versionsSize === false || $versionsSize < 0 ) {
|
||||||
|
@ -152,7 +153,7 @@ class Storage {
|
||||||
list($uidn, $newpath) = self::getUidAndFilename($newpath);
|
list($uidn, $newpath) = self::getUidAndFilename($newpath);
|
||||||
$versions_view = new \OC\Files\View('/'.$uid .'/files_versions');
|
$versions_view = new \OC\Files\View('/'.$uid .'/files_versions');
|
||||||
$files_view = new \OC\Files\View('/'.$uid .'/files');
|
$files_view = new \OC\Files\View('/'.$uid .'/files');
|
||||||
$abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_view->getAbsolutePath('').$newpath;
|
$abs_newpath = $versions_view->getLocalFile($newpath);
|
||||||
|
|
||||||
if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {
|
if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {
|
||||||
$versions_view->rename($oldpath, $newpath);
|
$versions_view->rename($oldpath, $newpath);
|
||||||
|
@ -207,8 +208,8 @@ class Storage {
|
||||||
public static function getVersions($uid, $filename, $count = 0 ) {
|
public static function getVersions($uid, $filename, $count = 0 ) {
|
||||||
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
|
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
|
||||||
$versions_fileview = new \OC\Files\View('/' . $uid . '/files_versions');
|
$versions_fileview = new \OC\Files\View('/' . $uid . '/files_versions');
|
||||||
|
$versionsName = $versions_fileview->getLocalFile($filename);
|
||||||
$versionsName = \OC_Filesystem::normalizePath(\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename));
|
|
||||||
$versions = array();
|
$versions = array();
|
||||||
// fetch for old versions
|
// fetch for old versions
|
||||||
$matches = glob(preg_quote($versionsName).'.v*' );
|
$matches = glob(preg_quote($versionsName).'.v*' );
|
||||||
|
@ -271,7 +272,7 @@ class Storage {
|
||||||
private static function calculateSize($uid) {
|
private static function calculateSize($uid) {
|
||||||
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
|
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
|
||||||
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
|
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
|
||||||
$versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
|
$versionsRoot = $versions_fileview->getLocalFolder('');
|
||||||
|
|
||||||
$iterator = new \RecursiveIteratorIterator(
|
$iterator = new \RecursiveIteratorIterator(
|
||||||
new \RecursiveDirectoryIterator($versionsRoot),
|
new \RecursiveDirectoryIterator($versionsRoot),
|
||||||
|
@ -299,7 +300,7 @@ class Storage {
|
||||||
private static function getAllVersions($uid) {
|
private static function getAllVersions($uid) {
|
||||||
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
|
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
|
||||||
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
|
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
|
||||||
$versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
|
$versionsRoot = $versions_fileview->getLocalFolder('');
|
||||||
|
|
||||||
$iterator = new \RecursiveIteratorIterator(
|
$iterator = new \RecursiveIteratorIterator(
|
||||||
new \RecursiveDirectoryIterator($versionsRoot),
|
new \RecursiveDirectoryIterator($versionsRoot),
|
||||||
|
|
Loading…
Reference in New Issue