Skip to content

Commit 0d4b0cb

Browse files
committed
fix(shares): guest users inherit edit_group
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
1 parent 479066e commit 0d4b0cb

3 files changed

Lines changed: 12 additions & 6 deletions

File tree

lib/Listener/ShareLinkListener.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,11 @@ public function handle(Event $event): void {
5959
$loggedInUser = $this->permissionManager->loggedInUser();
6060

6161
if ($this->permissionManager->isEnabledForUser($owner)) {
62+
$updatable = (bool)($share->getPermissions() & \OCP\Constants::PERMISSION_UPDATE);
63+
$updatable = $updatable && $this->permissionManager->userCanEdit($owner);
64+
6265
$this->initialStateService->prepareParams(['userId' => $loggedInUser]);
63-
$this->initialStateService->provideCapabilities();
66+
$this->initialStateService->providePublicShare($updatable);
6467

6568
Util::addScript('richdocuments', 'richdocuments-viewer', 'viewer');
6669
Util::addScript('richdocuments', 'richdocuments-public', 'viewer');

lib/Service/InitialStateService.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public function provideDocument(Wopi $wopi, array $params): void {
7575
$this->provideOptions();
7676
}
7777

78+
public function providePublicShare(?bool $userInEditGroups = true): void {
79+
$this->initialState->provideInitialState('userInEditGroups', $userInEditGroups);
80+
$this->provideCapabilities();
81+
}
82+
7883
public function prepareParams(array $params): array {
7984
$defaults = [
8085
'instanceId' => $this->config->getSystemValue('instanceid'),

src/public.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import {
55
isDocument,
66
isDownloadHidden,
77
} from './helpers/index.js'
8-
import { getCurrentUser } from '@nextcloud/auth'
8+
import { getCapabilities } from './services/capabilities.ts'
99
import NewFileMenu from './view/NewFileMenu.js'
10+
import { loadState } from '@nextcloud/initial-state'
1011

1112
const optionalMimetypes = getCapabilities().richdocuments.mimetypesNoDefaultOpen
1213

@@ -15,10 +16,7 @@ document.addEventListener('DOMContentLoaded', () => {
1516
return
1617
}
1718

18-
const userGroups = getCurrentUser()?.groups || []
19-
const editGroups = getCapabilities().richdocuments.config.edit_groups || []
20-
const editGroupsArray = Array.isArray(editGroups) ? editGroups : [editGroups]
21-
const userInEditGroups = editGroupsArray.some(group => userGroups.includes(group))
19+
const userInEditGroups = loadState('richdocuments', 'userInEditGroups', true)
2220

2321
if (OCA.Files && OCA.Files.fileActions && userInEditGroups) {
2422
OC.Plugins.register('OCA.Files.NewFileMenu', NewFileMenu)

0 commit comments

Comments
 (0)