Skip to content

Commit fe0c503

Browse files
committed
fix: Allow to opt-in loading image mimes on hide download shares
Signed-off-by: Julius Härtl <[email protected]>
1 parent 9f7b3ce commit fe0c503

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

lib/AppConfig.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ class AppConfig {
2424

2525
public const READ_ONLY_FEATURE_LOCK = 'read_only_feature_lock';
2626

27+
// Load additional mime types (like images) on public share links when hide download is enabled
28+
// Default: 'no', set to 'yes' to enable
29+
public const USE_SECURE_VIEW_ADDITIONAL_MIMES = 'use_secure_view_additional_mimes';
30+
2731
private $defaults = [
2832
'wopi_url' => '',
2933
'timeout' => 15,
@@ -178,4 +182,8 @@ public function getWopiOverride(): array {
178182
}
179183
return [];
180184
}
185+
186+
public function useSecureViewAdditionalMimes(): bool {
187+
return $this->config->getAppValue(Application::APPNAME, self::USE_SECURE_VIEW_ADDITIONAL_MIMES, 'no') === 'yes';
188+
}
181189
}

lib/Capabilities.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,26 @@ class Capabilities implements ICapability {
7373
'image/svg+xml',
7474
'application/pdf',
7575
'text/plain',
76-
'text/spreadsheet'
76+
'text/spreadsheet',
77+
];
78+
79+
public const SECURE_VIEW_ADDITIONAL_MIMES = [
80+
'image/jpeg',
81+
'image/svg+xml',
82+
'image/cgm',
83+
'image/vnd.dxf',
84+
'image/x-emf',
85+
'image/x-wmf',
86+
'image/x-wpg',
87+
'image/x-freehand',
88+
'image/bmp',
89+
'image/png',
90+
'image/gif',
91+
'image/tiff',
92+
'image/jpg',
93+
'image/jpeg',
94+
'text/plain',
95+
'application/pdf',
7796
];
7897

7998
private IL10N $l10n;
@@ -124,6 +143,7 @@ public function getCapabilities() {
124143
'version' => \OC::$server->getAppManager()->getAppVersion('richdocuments'),
125144
'mimetypes' => array_values($filteredMimetypes),
126145
'mimetypesNoDefaultOpen' => array_values($optionalMimetypes),
146+
'mimetypesSecureView' => $this->config->useSecureViewAdditionalMimes() ? self::SECURE_VIEW_ADDITIONAL_MIMES : [],
127147
'collabora' => $collaboraCapabilities,
128148
'direct_editing' => isset($collaboraCapabilities['hasMobileSupport']) ?: false,
129149
'templates' => isset($collaboraCapabilities['hasTemplateSaveAs']) || isset($collaboraCapabilities['hasTemplateSource']) ?: false,

src/files.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const odfViewer = {
3232
|| (typeof OC.getCapabilities().richdocuments.collabora === 'object' && OC.getCapabilities().richdocuments.collabora.length !== 0)),
3333
supportedMimes: OC.getCapabilities().richdocuments.mimetypes.concat(OC.getCapabilities().richdocuments.mimetypesNoDefaultOpen),
3434
excludeMimeFromDefaultOpen: OC.getCapabilities().richdocuments.mimetypesNoDefaultOpen,
35-
hideDownloadMimes: ['image/jpeg', 'image/svg+xml', 'image/cgm', 'image/vnd.dxf', 'image/x-emf', 'image/x-wmf', 'image/x-wpg', 'image/x-freehand', 'image/bmp', 'image/png', 'image/gif', 'image/tiff', 'image/jpg', 'image/jpeg', 'text/plain', 'application/pdf'],
35+
hideDownloadMimes: OC.getCapabilities().richdocuments.mimetypesSecureView,
3636

3737
onEdit(fileName, context) {
3838
let fileDir

0 commit comments

Comments
 (0)