Skip to content

Commit 21f3e92

Browse files
juliusknorrbackportbot[bot]
authored andcommitted
feat: Add option to set secure view for public talk shares
Signed-off-by: Julius Knorr <jus@bitgrid.net>
1 parent 887c041 commit 21f3e92

3 files changed

Lines changed: 26 additions & 13 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: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -321,13 +321,13 @@
321321
<p>{{ t('richdocuments', 'Secure view enables you to secure documents by embedding a watermark') }}</p>
322322
<ul>
323323
<li>{{ t('richdocuments', 'The settings only apply to compatible office files that are opened in Nextcloud Office') }}</li>
324+
<li>{{ t('richdocuments', 'Downloading the file through WebDAV will be blocked') }}</li>
324325
<li>{{ t('richdocuments', 'The following options within Nextcloud Office will be disabled: Copy, Download, Export, Print') }}</li>
325-
<li>{{ t('richdocuments', 'Files may still be downloadable through Nextcloud unless restricted otherwise through sharing or access control settings') }}</li>
326326
<li>{{ t('richdocuments', 'Files may still be downloadable via WOPI requests if WOPI settings are not correctly configured') }}</li>
327-
<li>{{ t('richdocuments', 'Previews will be blocked for watermarked files to not leak the first page of documents') }}</li>
327+
<li>{{ t('richdocuments', 'Previews will be blocked') }}</li>
328328
</ul>
329329
<SettingsCheckbox v-model="settings.watermark.enabled"
330-
:label="t('richdocuments', 'Enable watermarking')"
330+
:label="t('richdocuments', 'Enable secure view')"
331331
hint=""
332332
:disabled="updating"
333333
@input="update" />
@@ -339,62 +339,67 @@
339339
@update="update" />
340340
<div v-if="settings.watermark.enabled">
341341
<SettingsCheckbox v-model="settings.watermark.allTags"
342-
:label="t('richdocuments', 'Show watermark on tagged files')"
342+
:label="t('richdocuments', 'Enforce secure view on tagged files')"
343343
:disabled="updating"
344344
@input="update" />
345345
<p v-if="settings.watermark.allTags" class="checkbox-details">
346346
<NcSelectTags v-model="settings.watermark.allTagsList" :label="t('richdocuments', 'Select tags to enforce watermarking')" @input="update" />
347347
</p>
348348
<SettingsCheckbox v-model="settings.watermark.allGroups"
349-
:label="t('richdocuments', 'Show watermark for users of groups')"
349+
:label="t('richdocuments', 'Enforce secure view for users of groups')"
350350
:disabled="updating"
351351
@input="update" />
352352
<p v-if="settings.watermark.allGroups" class="checkbox-details">
353353
<SettingsSelectGroup v-model="settings.watermark.allGroupsList" :label="t('richdocuments', 'Select tags to enforce watermarking')" @input="update" />
354354
</p>
355355
<SettingsCheckbox v-model="settings.watermark.shareAll"
356-
:label="t('richdocuments', 'Show watermark for all shares')"
356+
:label="t('richdocuments', 'Enforce secure view for all shares')"
357357
hint=""
358358
:disabled="updating"
359359
@input="update" />
360360
<SettingsCheckbox v-if="!settings.watermark.shareAll"
361361
v-model="settings.watermark.shareRead"
362-
:label="t('richdocuments', 'Show watermark for read only shares')"
362+
:label="t('richdocuments', 'Enforce secure view for read only shares')"
363+
hint=""
364+
:disabled="updating"
365+
@input="update" />
366+
<SettingsCheckbox v-model="settings.watermark.shareTalkPublic"
367+
:label="t('richdocuments', 'Enforce secure view for all public Talk shares')"
363368
hint=""
364369
:disabled="updating"
365370
@input="update" />
366371
<SettingsCheckbox v-if="!settings.watermark.shareAll"
367372
v-model="settings.watermark.shareDisabledDownload"
368-
:label="t('richdocuments', 'Show watermark for shares without download permission')"
373+
:label="t('richdocuments', 'Enforce secure view for shares without download permission')"
369374
hint=""
370375
:disabled="updating"
371376
@input="update" />
372377

373378
<h3>Link shares</h3>
374379
<SettingsCheckbox v-model="settings.watermark.linkAll"
375-
:label="t('richdocuments', 'Show watermark for all link shares')"
380+
:label="t('richdocuments', 'Enforce secure view for all link shares')"
376381
hint=""
377382
:disabled="updating"
378383
@input="update" />
379384
<SettingsCheckbox v-if="!settings.watermark.linkAll"
380385
v-model="settings.watermark.linkSecure"
381-
:label="t('richdocuments', 'Show watermark for download hidden shares')"
386+
:label="t('richdocuments', 'Enforce secure view for download hidden shares')"
382387
hint=""
383388
:disabled="updating"
384389
@input="update" />
385390
<SettingsCheckbox v-if="!settings.watermark.linkAll"
386391
v-model="settings.watermark.linkRead"
387-
:label="t('richdocuments', 'Show watermark for read only link shares')"
392+
:label="t('richdocuments', 'Enforce secure view for read only link shares')"
388393
hint=""
389394
:disabled="updating"
390395
@input="update" />
391396
<SettingsCheckbox v-if="!settings.watermark.linkAll"
392397
v-model="settings.watermark.linkTags"
393-
:label="t('richdocuments', 'Show watermark on link shares with specific system tags')"
398+
:label="t('richdocuments', 'Enforce secure view on link shares with specific system tags')"
394399
:disabled="updating"
395400
@input="update" />
396401
<p v-if="!settings.watermark.linkAll && settings.watermark.linkTags" class="checkbox-details">
397-
<NcSelectTags v-model="settings.watermark.linkTagsList" :label="t('richdocuments', 'Select tags to enforce watermarking')" @input="update" />
402+
<NcSelectTags v-model="settings.watermark.linkTagsList" :label="t('richdocuments', 'Select tags to enforce secure view')" @input="update" />
398403
</p>
399404
</div>
400405
</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)