check if the user still exists before we try to cleanup the previews

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Bjoern Schiessle 2017-11-14 20:20:20 +01:00
parent a3f86b99e9
commit a923e755e6
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with 22 additions and 2 deletions

View File

@ -30,6 +30,7 @@ use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\ILogger;
use OCP\IUserManager;
class CleanPreviewsBackgroundJob extends QueuedJob {
/** @var IRootFolder */
@ -44,6 +45,9 @@ class CleanPreviewsBackgroundJob extends QueuedJob {
/** @var ITimeFactory */
private $timeFactory;
/** @var IUserManager */
private $userManager;
/**
* CleanPreviewsBackgroundJob constructor.
*
@ -51,19 +55,26 @@ class CleanPreviewsBackgroundJob extends QueuedJob {
* @param ILogger $logger
* @param IJobList $jobList
* @param ITimeFactory $timeFactory
* @param IUserManager $userManager
*/
public function __construct(IRootFolder $rootFolder,
ILogger $logger,
IJobList $jobList,
ITimeFactory $timeFactory) {
ITimeFactory $timeFactory,
IUserManager $userManager) {
$this->rootFolder = $rootFolder;
$this->logger = $logger;
$this->jobList = $jobList;
$this->timeFactory = $timeFactory;
$this->userManager = $userManager;
}
public function run($arguments) {
$uid = $arguments['uid'];
if (!$this->userManager->userExists($uid)) {
$this->logger->info('User no longer exists, skip user ' . $uid);
return;
}
$this->logger->info('Started preview cleanup for ' . $uid);
$empty = $this->cleanupPreviews($uid);

View File

@ -30,6 +30,7 @@ use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\ILogger;
use OCP\IUserManager;
use Test\TestCase;
class CleanPreviewsBackgroundJobTest extends TestCase {
@ -48,6 +49,9 @@ class CleanPreviewsBackgroundJobTest extends TestCase {
/** @var CleanPreviewsBackgroundJob */
private $job;
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
private $userManager;
public function setUp() {
parent::setUp();
@ -55,12 +59,17 @@ class CleanPreviewsBackgroundJobTest extends TestCase {
$this->logger = $this->createMock(ILogger::class);
$this->jobList = $this->createMock(IJobList::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->userManager->expects($this->any())->method('userExists')->willReturn(true);
$this->job = new CleanPreviewsBackgroundJob(
$this->rootFolder,
$this->logger,
$this->jobList,
$this->timeFactory);
$this->timeFactory,
$this->userManager
);
}
public function testCleanupPreviewsUnfinished() {