Clean user cache on login

This commit is contained in:
Bart Visscher 2012-08-28 23:07:09 +02:00
parent 8a02a8852f
commit 53e51fe46b
2 changed files with 23 additions and 1 deletions

View File

@ -346,8 +346,9 @@ class OC{
}
}
// register cache cleanup
// register cache cleanup jobs
OC_BackgroundJob_RegularTask::register('OC_Cache_FileGlobal', 'gc');
OC_Hook::connect('OC_User', 'post_login', 'OC_Cache_File', 'loginListener');
// Check for blacklisted files
OC_Hook::connect('OC_Filesystem','write','OC_Filesystem','isBlacklisted');

21
lib/cache/file.php vendored
View File

@ -74,4 +74,25 @@ class OC_Cache_File{
}
return true;
}
public function gc() {
$storage = $this->getStorage();
if($storage and $storage->is_dir('/')) {
$now = time();
$dh=$storage->opendir('/');
while($file=readdir($dh)) {
if($file!='.' and $file!='..') {
$mtime = $storage->filemtime('/'.$file);
if ($mtime < $now) {
$storage->unlink('/'.$file);
}
}
}
}
}
public static function loginListener() {
$c = new self();
$c->gc();
}
}