Skip to content

Commit 4552fab

Browse files
committed
feat: Add option to set secure view for public talk shares
Signed-off-by: Julius Knorr <jus@bitgrid.net>
1 parent 4c7646a commit 4552fab

3 files changed

Lines changed: 27 additions & 14 deletions

File tree

lib/Controller/SettingsController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ public function updateWatermarkSettings($settings = []): JSONResponse {
213213
'watermark_shareAll',
214214
'watermark_shareRead',
215215
'watermark_shareDisabledDownload',
216+
'watermark_shareTalkPublic',
216217
'watermark_linkSecure',
217218
'watermark_linkRead',
218219
'watermark_linkAll',

lib/PermissionManager.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,12 @@ public function shouldWatermark(Node $node, ?string $userId = null, ?IShare $sha
162162
return true;
163163
}
164164

165+
if ($this->config->getAppValue(AppConfig::WATERMARK_APP_NAMESPACE, 'watermark_shareTalkPublic', 'no') === 'yes') {
166+
if ($userId === null && $share->getShareType() === IShare::TYPE_ROOM) {
167+
return true;
168+
}
169+
}
170+
165171
if ($userId !== null && $this->config->getAppValue(AppConfig::WATERMARK_APP_NAMESPACE, 'watermark_allGroups', 'no') === 'yes') {
166172
$groups = $this->appConfig->getAppValueArray('watermark_allGroupsList');
167173
foreach ($groups as $group) {

src/components/AdminSettings.vue

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -310,16 +310,16 @@
310310

311311
<div v-if="isSetup" id="secure-view-settings" class="section">
312312
<h2>{{ t('richdocuments', 'Secure View') }}</h2>
313-
<p>{{ t('richdocuments', 'Secure view enables you to secure documents by embedding a watermark') }}</p>
313+
<p>{{ t('richdocuments', 'Secure view enables you to secure office documents by blocking downloads, previews and showing a watermark') }}</p>
314314
<ul>
315315
<li>{{ t('richdocuments', 'The settings only apply to compatible office files that are opened in Nextcloud Office') }}</li>
316+
<li>{{ t('richdocuments', 'Downloading the file through WebDAV will be blocked') }}</li>
316317
<li>{{ t('richdocuments', 'The following options within Nextcloud Office will be disabled: Copy, Download, Export, Print') }}</li>
317-
<li>{{ t('richdocuments', 'Files may still be downloadable through Nextcloud unless restricted otherwise through sharing or access control settings') }}</li>
318318
<li>{{ t('richdocuments', 'Files may still be downloadable via WOPI requests if WOPI settings are not correctly configured') }}</li>
319-
<li>{{ t('richdocuments', 'Previews will be blocked for watermarked files to not leak the first page of documents') }}</li>
319+
<li>{{ t('richdocuments', 'Previews will be blocked') }}</li>
320320
</ul>
321321
<SettingsCheckbox v-model="settings.watermark.enabled"
322-
:label="t('richdocuments', 'Enable watermarking')"
322+
:label="t('richdocuments', 'Enable secure view')"
323323
hint=""
324324
:disabled="updating"
325325
@input="update" />
@@ -331,62 +331,67 @@
331331
@update="update" />
332332
<div v-if="settings.watermark.enabled">
333333
<SettingsCheckbox v-model="settings.watermark.allTags"
334-
:label="t('richdocuments', 'Show watermark on tagged files')"
334+
:label="t('richdocuments', 'Enforce secure view on tagged files')"
335335
:disabled="updating"
336336
@input="update" />
337337
<p v-if="settings.watermark.allTags" class="checkbox-details">
338338
<NcSelectTags v-model="settings.watermark.allTagsList" :label="t('richdocuments', 'Select tags to enforce watermarking')" @input="update" />
339339
</p>
340340
<SettingsCheckbox v-model="settings.watermark.allGroups"
341-
:label="t('richdocuments', 'Show watermark for users of groups')"
341+
:label="t('richdocuments', 'Enforce secure view for users of groups')"
342342
:disabled="updating"
343343
@input="update" />
344344
<p v-if="settings.watermark.allGroups" class="checkbox-details">
345345
<SettingsSelectGroup v-model="settings.watermark.allGroupsList" :label="t('richdocuments', 'Select tags to enforce watermarking')" @input="update" />
346346
</p>
347347
<SettingsCheckbox v-model="settings.watermark.shareAll"
348-
:label="t('richdocuments', 'Show watermark for all shares')"
348+
:label="t('richdocuments', 'Enforce secure view for all shares')"
349349
hint=""
350350
:disabled="updating"
351351
@input="update" />
352352
<SettingsCheckbox v-if="!settings.watermark.shareAll"
353353
v-model="settings.watermark.shareRead"
354-
:label="t('richdocuments', 'Show watermark for read only shares')"
354+
:label="t('richdocuments', 'Enforce secure view for read only shares')"
355+
hint=""
356+
:disabled="updating"
357+
@input="update" />
358+
<SettingsCheckbox v-model="settings.watermark.shareTalkPublic"
359+
:label="t('richdocuments', 'Enforce secure view for all public Talk shares')"
355360
hint=""
356361
:disabled="updating"
357362
@input="update" />
358363
<SettingsCheckbox v-if="!settings.watermark.shareAll"
359364
v-model="settings.watermark.shareDisabledDownload"
360-
:label="t('richdocuments', 'Show watermark for shares without download permission')"
365+
:label="t('richdocuments', 'Enforce secure view for shares without download permission')"
361366
hint=""
362367
:disabled="updating"
363368
@input="update" />
364369

365370
<h3>Link shares</h3>
366371
<SettingsCheckbox v-model="settings.watermark.linkAll"
367-
:label="t('richdocuments', 'Show watermark for all link shares')"
372+
:label="t('richdocuments', 'Enforce secure view for all link shares')"
368373
hint=""
369374
:disabled="updating"
370375
@input="update" />
371376
<SettingsCheckbox v-if="!settings.watermark.linkAll"
372377
v-model="settings.watermark.linkSecure"
373-
:label="t('richdocuments', 'Show watermark for download hidden shares')"
378+
:label="t('richdocuments', 'Enforce secure view for download hidden shares')"
374379
hint=""
375380
:disabled="updating"
376381
@input="update" />
377382
<SettingsCheckbox v-if="!settings.watermark.linkAll"
378383
v-model="settings.watermark.linkRead"
379-
:label="t('richdocuments', 'Show watermark for read only link shares')"
384+
:label="t('richdocuments', 'Enforce secure view for read only link shares')"
380385
hint=""
381386
:disabled="updating"
382387
@input="update" />
383388
<SettingsCheckbox v-if="!settings.watermark.linkAll"
384389
v-model="settings.watermark.linkTags"
385-
:label="t('richdocuments', 'Show watermark on link shares with specific system tags')"
390+
:label="t('richdocuments', 'Enforce secure view on link shares with specific system tags')"
386391
:disabled="updating"
387392
@input="update" />
388393
<p v-if="!settings.watermark.linkAll && settings.watermark.linkTags" class="checkbox-details">
389-
<NcSelectTags v-model="settings.watermark.linkTagsList" :label="t('richdocuments', 'Select tags to enforce watermarking')" @input="update" />
394+
<NcSelectTags v-model="settings.watermark.linkTagsList" :label="t('richdocuments', 'Select tags to enforce secure view')" @input="update" />
390395
</p>
391396
</div>
392397
</div>
@@ -512,6 +517,7 @@ export default {
512517
enabled: false,
513518
shareAll: false,
514519
shareRead: false,
520+
shareTalkPublic: true,
515521
linkSecure: false,
516522
linkRead: false,
517523
linkAll: false,

0 commit comments

Comments
 (0)