parent
d4ea853fcf
commit
57a56299d8
|
@ -96,14 +96,14 @@ class Storage {
|
||||||
}
|
}
|
||||||
|
|
||||||
// check filesize
|
// check filesize
|
||||||
if(filesize($filesfoldername.$filename)>\OCP\Config::getSystemValue('files_versionsmaxfilesize', Storage::DEFAULTMAXFILESIZE)){
|
if(filesize($filesfoldername.'/'.$filename)>\OCP\Config::getSystemValue('files_versionsmaxfilesize', Storage::DEFAULTMAXFILESIZE)){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval)
|
// check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval)
|
||||||
if ($uid == \OCP\User::getUser()) {
|
if ($uid == \OCP\User::getUser()) {
|
||||||
$matches=glob($versionsfoldername.$filename.'.v*');
|
$matches=glob($versionsfoldername.'/'.$filename.'.v*');
|
||||||
sort($matches);
|
sort($matches);
|
||||||
$parts=explode('.v',end($matches));
|
$parts=explode('.v',end($matches));
|
||||||
if((end($parts)+Storage::DEFAULTMININTERVAL)>time()){
|
if((end($parts)+Storage::DEFAULTMININTERVAL)>time()){
|
||||||
|
@ -114,10 +114,10 @@ class Storage {
|
||||||
|
|
||||||
// create all parent folders
|
// create all parent folders
|
||||||
$info=pathinfo($filename);
|
$info=pathinfo($filename);
|
||||||
@mkdir($versionsfoldername.$info['dirname'],0700,true);
|
if(!file_exists($versionsfoldername.'/'.$info['dirname'])) mkdir($versionsfoldername.'/'.$info['dirname'],0700,true);
|
||||||
|
|
||||||
// store a new version of a file
|
// store a new version of a file
|
||||||
copy($filesfoldername.$filename,$versionsfoldername.$filename.'.v'.time());
|
copy($filesfoldername.'/'.$filename,$versionsfoldername.'/'.$filename.'.v'.time());
|
||||||
|
|
||||||
// expire old revisions
|
// expire old revisions
|
||||||
Storage::expire($filename);
|
Storage::expire($filename);
|
||||||
|
@ -143,7 +143,7 @@ class Storage {
|
||||||
$filesfoldername=\OCP\Config::getSystemValue('datadirectory').'/'. $uid .'/files';
|
$filesfoldername=\OCP\Config::getSystemValue('datadirectory').'/'. $uid .'/files';
|
||||||
|
|
||||||
// rollback
|
// rollback
|
||||||
if ( @copy($versionsfoldername.$filename.'.v'.$revision,$filesfoldername.$filename) ) {
|
if ( @copy($versionsfoldername.'/'.$filename.'.v'.$revision,$filesfoldername.$filename) ) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ class Storage {
|
||||||
$versionsfoldername=\OCP\Config::getSystemValue('datadirectory').'/'. $uid .'/'.\OCP\Config::getSystemValue('files_versionsfolder', Storage::DEFAULTFOLDER);
|
$versionsfoldername=\OCP\Config::getSystemValue('datadirectory').'/'. $uid .'/'.\OCP\Config::getSystemValue('files_versionsfolder', Storage::DEFAULTFOLDER);
|
||||||
|
|
||||||
// check for old versions
|
// check for old versions
|
||||||
$matches=glob($versionsfoldername.$filename.'.v*');
|
$matches=glob($versionsfoldername.'/'.$filename.'.v*');
|
||||||
if(count($matches)>1){
|
if(count($matches)>1){
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
|
@ -201,7 +201,7 @@ class Storage {
|
||||||
$versions=array();
|
$versions=array();
|
||||||
|
|
||||||
// fetch for old versions
|
// fetch for old versions
|
||||||
$matches=glob($versionsfoldername.$filename.'.v*');
|
$matches=glob($versionsfoldername.'/'.$filename.'.v*');
|
||||||
sort($matches);
|
sort($matches);
|
||||||
foreach($matches as $ma) {
|
foreach($matches as $ma) {
|
||||||
$parts=explode('.v',$ma);
|
$parts=explode('.v',$ma);
|
||||||
|
@ -238,14 +238,14 @@ class Storage {
|
||||||
$versionsfoldername=\OCP\Config::getSystemValue('datadirectory').'/'. $uid .'/'.\OCP\Config::getSystemValue('files_versionsfolder', Storage::DEFAULTFOLDER);
|
$versionsfoldername=\OCP\Config::getSystemValue('datadirectory').'/'. $uid .'/'.\OCP\Config::getSystemValue('files_versionsfolder', Storage::DEFAULTFOLDER);
|
||||||
|
|
||||||
// check for old versions
|
// check for old versions
|
||||||
$matches=glob($versionsfoldername.$filename.'.v*');
|
$matches=glob($versionsfoldername.'/'.$filename.'.v*');
|
||||||
if(count($matches)>\OCP\Config::getSystemValue('files_versionmaxversions', Storage::DEFAULTMAXVERSIONS)){
|
if(count($matches)>\OCP\Config::getSystemValue('files_versionmaxversions', Storage::DEFAULTMAXVERSIONS)){
|
||||||
$numbertodelete=count($matches-\OCP\Config::getSystemValue('files_versionmaxversions', Storage::DEFAULTMAXVERSIONS));
|
$numbertodelete=count($matches-\OCP\Config::getSystemValue('files_versionmaxversions', Storage::DEFAULTMAXVERSIONS));
|
||||||
|
|
||||||
// delete old versions of a file
|
// delete old versions of a file
|
||||||
$deleteitems=array_slice($matches,0,$numbertodelete);
|
$deleteitems=array_slice($matches,0,$numbertodelete);
|
||||||
foreach($deleteitems as $de){
|
foreach($deleteitems as $de){
|
||||||
unlink($versionsfoldername.$filename.'.v'.$de);
|
unlink($versionsfoldername.'/'.$filename.'.v'.$de);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue