diff --git a/apps/files_sharing/lib/Controller/ExternalSharesController.php b/apps/files_sharing/lib/Controller/ExternalSharesController.php index 79acd0bca67c0..201a460d32a88 100644 --- a/apps/files_sharing/lib/Controller/ExternalSharesController.php +++ b/apps/files_sharing/lib/Controller/ExternalSharesController.php @@ -8,12 +8,10 @@ namespace OCA\Files_Sharing\Controller; -use OCA\Files_Sharing\BackgroundJob\ExternalShareScanJob; use OCA\Files_Sharing\External\Manager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\JSONResponse; -use OCP\BackgroundJob\IJobList; use OCP\IRequest; /** @@ -26,7 +24,6 @@ public function __construct( string $appName, IRequest $request, private readonly Manager $externalManager, - private IJobList $jobList, ) { parent::__construct($appName, $request); } @@ -47,7 +44,6 @@ public function create(string $id): JSONResponse { $externalShare = $this->externalManager->getShare($id); if ($externalShare !== false) { $this->externalManager->acceptShare($externalShare); - $this->jobList->add(ExternalShareScanJob::class, [$externalShare->getUser(), $externalShare->getMountpoint()]); } return new JSONResponse(); } diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php index c17cb1a4f98c8..14723a15e2589 100644 --- a/apps/files_sharing/lib/External/Manager.php +++ b/apps/files_sharing/lib/External/Manager.php @@ -10,8 +10,10 @@ use OC\Files\Filesystem; use OCA\FederatedFileSharing\Events\FederatedShareAddedEvent; +use OCA\Files_Sharing\BackgroundJob\ExternalShareScanJob; use OCA\Files_Sharing\Helper; use OCP\AppFramework\Db\DoesNotExistException; +use OCP\BackgroundJob\IJobList; use OCP\DB\Exception; use OCP\EventDispatcher\IEventDispatcher; use OCP\Federation\ICloudFederationFactory; @@ -58,6 +60,7 @@ public function __construct( private ICertificateManager $certificateManager, private ExternalShareMapper $externalShareMapper, private IConfig $config, + private readonly IJobList $jobList, ) { $this->user = $userSession->getUser(); } @@ -249,6 +252,7 @@ public function acceptShare(ExternalShare $externalShare, ?IUser $user = null): $externalShare->setMountpoint($mountPoint); $this->externalShareMapper->update($externalShare); $userShareAccepted = true; + $this->jobList->add(ExternalShareScanJob::class, [$externalShare->getUser(), $externalShare->getMountpoint()]); } } else { try { diff --git a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php index 61b29fa771cfd..e926cd51ba57c 100644 --- a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php @@ -12,7 +12,6 @@ use OCA\Files_Sharing\External\ExternalShare; use OCA\Files_Sharing\External\Manager; use OCP\AppFramework\Http\JSONResponse; -use OCP\BackgroundJob\IJobList; use OCP\IRequest; use PHPUnit\Framework\MockObject\MockObject; @@ -24,13 +23,11 @@ class ExternalShareControllerTest extends \Test\TestCase { private IRequest&MockObject $request; private Manager&MockObject $externalManager; - private IJobList&MockObject $jobList; protected function setUp(): void { parent::setUp(); $this->request = $this->createMock(IRequest::class); $this->externalManager = $this->createMock(Manager::class); - $this->jobList = $this->createMock(IJobList::class); } public function getExternalShareController(): ExternalSharesController { @@ -38,7 +35,6 @@ public function getExternalShareController(): ExternalSharesController { 'files_sharing', $this->request, $this->externalManager, - $this->jobList, ); } @@ -62,9 +58,6 @@ public function testCreate(): void { ->expects($this->once()) ->method('acceptShare') ->with($share); - $this->jobList - ->expects($this->once()) - ->method('add'); $this->assertEquals(new JSONResponse(), $this->getExternalShareController()->create('4')); } diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php index bfe6567872a4d..59305a90ca433 100644 --- a/apps/files_sharing/tests/External/ManagerTest.php +++ b/apps/files_sharing/tests/External/ManagerTest.php @@ -18,6 +18,7 @@ use OCA\Files_Sharing\External\Manager; use OCA\Files_Sharing\External\MountProvider; use OCA\Files_Sharing\Tests\TestCase; +use OCP\BackgroundJob\IJobList; use OCP\Contacts\IManager; use OCP\EventDispatcher\IEventDispatcher; use OCP\Federation\ICloudFederationFactory; @@ -77,6 +78,7 @@ class ManagerTest extends TestCase { private IOCMDiscoveryService&MockObject $ocmDiscoveryService; private ExternalShareMapper $externalShareMapper; private IConfig $config; + private IJobList&MockObject $jobList; protected function setUp(): void { parent::setUp(); @@ -93,6 +95,7 @@ protected function setUp(): void { $this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class); $this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class); $this->config = $this->createMock(IConfig::class); + $this->jobList = $this->createMock(IJobList::class); $this->groupManager = $this->createMock(IGroupManager::class); $this->userManager = $this->createMock(IUserManager::class); $this->eventDispatcher = $this->createMock(IEventDispatcher::class); @@ -182,6 +185,7 @@ private function createManagerForUser(IUser $user): Manager&MockObject { $this->certificateManager, $this->externalShareMapper, $this->config, + $this->jobList, ] )->onlyMethods(['tryOCMEndPoint'])->getMock(); } diff --git a/apps/files_sharing/tests/External/ManagerUpdateAccessTokenTest.php b/apps/files_sharing/tests/External/ManagerUpdateAccessTokenTest.php index c4a5fe2db8b3d..e0b696de4d47b 100644 --- a/apps/files_sharing/tests/External/ManagerUpdateAccessTokenTest.php +++ b/apps/files_sharing/tests/External/ManagerUpdateAccessTokenTest.php @@ -13,6 +13,7 @@ use OCA\Files_Sharing\External\ExternalShareMapper; use OCA\Files_Sharing\External\Manager; use OCP\AppFramework\Db\DoesNotExistException; +use OCP\BackgroundJob\IJobList; use OCP\DB\Exception; use OCP\EventDispatcher\IEventDispatcher; use OCP\Federation\ICloudFederationFactory; @@ -64,6 +65,7 @@ protected function setUp(): void { $this->createMock(ICertificateManager::class), $this->externalShareMapper, $this->createMock(IConfig::class), + $this->createMock(IJobList::class), ); }