summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/src
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2020-01-13 12:14:25 +0100
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2020-01-14 17:15:02 +0100
commit897111404a3f8014b92af4e387a3561a0e8ff547 (patch)
tree17518bbbd0f0ea66442a89678b4553c15d91a7e5 /apps/files_sharing/src
parent092a1fb90f57639a15adc5a8e565b53debe26a8a (diff)
downloadnextcloud-server-897111404a3f8014b92af4e387a3561a0e8ff547.tar.gz
nextcloud-server-897111404a3f8014b92af4e387a3561a0e8ff547.zip
Add "Password protected by Talk" option to shares
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'apps/files_sharing/src')
-rw-r--r--apps/files_sharing/src/components/SharingEntryLink.vue38
-rw-r--r--apps/files_sharing/src/models/Share.js22
2 files changed, 60 insertions, 0 deletions
diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue
index cc3c8c764e2..ea0f064a21d 100644
--- a/apps/files_sharing/src/components/SharingEntryLink.vue
+++ b/apps/files_sharing/src/components/SharingEntryLink.vue
@@ -195,6 +195,15 @@
{{ t('files_sharing', 'Enter a password') }}
</ActionInput>
+ <!-- password protected by Talk -->
+ <ActionCheckbox v-if="isPasswordProtectedByTalkAvailable"
+ :checked.sync="isPasswordProtectedByTalk"
+ :disabled="saving"
+ class="share-link-password-talk-checkbox"
+ @change="queueUpdate('sendPasswordByTalk')">
+ {{ t('files_sharing', 'Video verification') }}
+ </ActionCheckbox>
+
<!-- expiration date -->
<ActionCheckbox :checked.sync="hasExpirationDate"
:disabled="config.isDefaultExpireDateEnforced || saving"
@@ -419,6 +428,35 @@ export default {
},
/**
+ * Is Talk enabled?
+ * @returns {boolean}
+ */
+ isTalkEnabled() {
+ return OC.appswebroots['spreed'] !== undefined
+ },
+
+ /**
+ * Is it possible to protect the password by Talk?
+ * @returns {boolean}
+ */
+ isPasswordProtectedByTalkAvailable() {
+ return this.isPasswordProtected && this.isTalkEnabled
+ },
+
+ /**
+ * Is the current share password protected by Talk?
+ * @returns {boolean}
+ */
+ isPasswordProtectedByTalk: {
+ get: function() {
+ return this.share.sendPasswordByTalk
+ },
+ set: async function(enabled) {
+ this.share.sendPasswordByTalk = enabled
+ },
+ },
+
+ /**
* Is the current share an email share ?
* @returns {boolean}
*/
diff --git a/apps/files_sharing/src/models/Share.js b/apps/files_sharing/src/models/Share.js
index 35a95119542..1c8c24cfc7b 100644
--- a/apps/files_sharing/src/models/Share.js
+++ b/apps/files_sharing/src/models/Share.js
@@ -306,6 +306,28 @@ export default class Share {
this.#share.password = password
}
+ /**
+ * Password protection by Talk of the share
+ *
+ * @returns {Boolean}
+ * @readonly
+ * @memberof Share
+ */
+ get sendPasswordByTalk() {
+ return this.#share.send_password_by_talk
+ }
+
+ /**
+ * Password protection by Talk of the share
+ *
+ * @param {Boolean} sendPasswordByTalk whether to send the password by Talk
+ * or not
+ * @memberof Share
+ */
+ set sendPasswordByTalk(sendPasswordByTalk) {
+ this.#share.send_password_by_talk = sendPasswordByTalk
+ }
+
// SHARED ITEM DATA ---------------------------------------------
/**
* Get the shared item absolute full path