diff --git a/lib/private/Repair/NC11/CleanPreviewsBackgroundJob.php b/lib/private/Repair/NC11/CleanPreviewsBackgroundJob.php index 9efe01508a6..e713f4dc63a 100644 --- a/lib/private/Repair/NC11/CleanPreviewsBackgroundJob.php +++ b/lib/private/Repair/NC11/CleanPreviewsBackgroundJob.php @@ -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); diff --git a/tests/lib/Repair/NC11/CleanPreviewsBackgroundJobTest.php b/tests/lib/Repair/NC11/CleanPreviewsBackgroundJobTest.php index e3fb22f0825..c0e2f0ce1b5 100644 --- a/tests/lib/Repair/NC11/CleanPreviewsBackgroundJobTest.php +++ b/tests/lib/Repair/NC11/CleanPreviewsBackgroundJobTest.php @@ -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() {