mirror of
https://github.com/nextcloud/richdocuments.git
synced 2025-12-18 05:20:43 +01:00
Merge pull request #4807 from IONOS-Productivity/fix/shares-disable-doc-creation
fix: allow document creation only for users that can edit
This commit is contained in:
commit
8101c1a683
2 changed files with 22 additions and 1 deletions
|
|
@ -34,7 +34,7 @@ class RegisterTemplateFileCreatorListener implements IEventListener {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!$this->permissionManager->isEnabledForUser() || empty($this->capabilitiesService->getCapabilities())) {
|
||||
if (!$this->permissionManager->isEnabledForUser() || !$this->permissionManager->userCanEdit() || empty($this->capabilitiesService->getCapabilities())) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ class RegisterTemplateFileCreatorListenerTest extends TestCase {
|
|||
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
|
||||
$event->method('getTemplateManager')->willReturn($this->templateManager);
|
||||
$this->permissionManager->method('isEnabledForUser')->willReturn(false);
|
||||
$this->permissionManager->method('userCanEdit')->willReturn(true);
|
||||
$this->capabilitiesService->method('getCapabilities')->willReturn([]);
|
||||
|
||||
$listener = new RegisterTemplateFileCreatorListener(
|
||||
|
|
@ -70,6 +71,7 @@ class RegisterTemplateFileCreatorListenerTest extends TestCase {
|
|||
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
|
||||
$event->method('getTemplateManager')->willReturn($this->templateManager);
|
||||
$this->permissionManager->method('isEnabledForUser')->willReturn(true);
|
||||
$this->permissionManager->method('userCanEdit')->willReturn(true);
|
||||
$this->capabilitiesService->method('getCapabilities')->willReturn(['something']);
|
||||
$this->capabilitiesService->method('hasDrawSupport')->willReturn(true);
|
||||
$this->config->method('getAppValue')->willReturn('ooxml');
|
||||
|
|
@ -91,6 +93,7 @@ class RegisterTemplateFileCreatorListenerTest extends TestCase {
|
|||
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
|
||||
$event->method('getTemplateManager')->willReturn($this->templateManager);
|
||||
$this->permissionManager->method('isEnabledForUser')->willReturn(true);
|
||||
$this->permissionManager->method('userCanEdit')->willReturn(true);
|
||||
$this->capabilitiesService->method('getCapabilities')->willReturn(['something']);
|
||||
$this->capabilitiesService->method('hasDrawSupport')->willReturn(false);
|
||||
$this->config->method('getAppValue')->willReturn('ooxml');
|
||||
|
|
@ -107,4 +110,22 @@ class RegisterTemplateFileCreatorListenerTest extends TestCase {
|
|||
);
|
||||
$listener->handle($event);
|
||||
}
|
||||
|
||||
public function testHandleDoesNotRegisterIfUserCannotEdit() {
|
||||
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
|
||||
$event->method('getTemplateManager')->willReturn($this->templateManager);
|
||||
$this->permissionManager->method('isEnabledForUser')->willReturn(true);
|
||||
$this->permissionManager->method('userCanEdit')->willReturn(false);
|
||||
$this->capabilitiesService->method('getCapabilities')->willReturn(['something']);
|
||||
|
||||
$listener = new RegisterTemplateFileCreatorListener(
|
||||
$this->l10n,
|
||||
$this->config,
|
||||
$this->appManager,
|
||||
$this->capabilitiesService,
|
||||
$this->permissionManager
|
||||
);
|
||||
$this->templateManager->expects($this->never())->method('registerTemplateFileCreator');
|
||||
$listener->handle($event);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue