From 763541207608dcc436b9cc40f8a183de058496dd Mon Sep 17 00:00:00 2001
From: Ferdinand Thiessen {{ t('settings', 'Please read carefully before activating server-side encryption:') }}
- {{ t('settings', 'This is the final warning: Do you really want to enable encryption?') }}
-
- {{ t('settings', 'No encryption module loaded, please enable an encryption module in the app menu.') }}
-
+ {{ textExistingFilesNotEncrypted }}
+ {{ t('settings', 'To encrypt all existing files run this OCC command:') }}
+
+ {{ t('settings', 'Disabling server side encryption is only possible using OCC, please refer to the documentation.') }}
+
+ {{ t('settings', 'Please read carefully before activating server-side encryption:') }}
+
-
-
- {{ t('settings', 'Select default encryption module:') }}
-
-
-
+
+ occ encryption:encrypt-all
+ {{ t('settings', 'Select default encryption module:') }}
+
+
+
+
+ {{ t('settings', 'This is the final warning: Do you really want to enable encryption?') }} +
+ + + + diff --git a/apps/settings/src/components/Encryption/sharedTexts.ts b/apps/settings/src/components/Encryption/sharedTexts.ts new file mode 100644 index 0000000000000..94d23be07f231 --- /dev/null +++ b/apps/settings/src/components/Encryption/sharedTexts.ts @@ -0,0 +1,7 @@ +/*! + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +import { t } from '@nextcloud/l10n' + +export const textExistingFilesNotEncrypted = t('settings', 'For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted.') diff --git a/apps/settings/src/main-admin-security.js b/apps/settings/src/main-admin-security.js index 2893c7fa0485b..5248ff3b5fe20 100644 --- a/apps/settings/src/main-admin-security.js +++ b/apps/settings/src/main-admin-security.js @@ -7,7 +7,7 @@ import { loadState } from '@nextcloud/initial-state' import Vue from 'vue' import AdminTwoFactor from './components/AdminTwoFactor.vue' -import Encryption from './components/Encryption.vue' +import EncryptionSettings from './components/Encryption/EncryptionSettings.vue' import store from './store/admin-security.js' // eslint-disable-next-line camelcase @@ -28,5 +28,5 @@ new View({ store, }).$mount('#two-factor-auth-settings') -const EncryptionView = Vue.extend(Encryption) +const EncryptionView = Vue.extend(EncryptionSettings) new EncryptionView().$mount('#vue-admin-encryption') From 201a7f058104b5bc337dd9e927ea00325ebc1e7a Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen-1)r&&r.push(i);else if(u=ge(i),o=De(c.appendChild(i),"script"),u&&Se(o),n)for(d=0;i=o[d++];)Te.test(i.type||"")&&n.push(i);return c}var Le=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function Oe(){return!1}function je(e,t,n,a,r,i){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(a=a||n,n=void 0),t)je(e,s,n,a,t[s],i);return e}if(null==a&&null==r?(r=n,a=n=void 0):null==r&&("string"==typeof n?(r=a,a=void 0):(r=a,a=n,n=void 0)),!1===r)r=Oe;else if(!r)return e;return 1===i&&(o=r,r=function(e){return E().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=E.guid++)),e.each((function(){E.event.add(this,t,r,a,n)}))}function Ye(e,t,n){n?(se.set(e,t,!1),E.event.add(e,t,{namespace:!1,handler:function(e){var n,a=se.get(this,t);if(1&e.isTrigger&&this[t]){if(a)(E.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=s.call(arguments),se.set(this,t,a),this[t](),n=se.get(this,t),se.set(this,t,!1),a!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else a&&(se.set(this,t,E.event.trigger(a[0],a.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===se.get(e,t)&&E.event.add(e,t,Ne)}E.event={global:{},add:function(e,t,n,a,r){var i,o,s,l,u,d,c,h,f,p,m,g=se.get(e);if(ie(e))for(n.handler&&(n=(i=n).handler,r=i.selector),r&&E.find.matchesSelector(me,r),n.guid||(n.guid=E.guid++),(l=g.events)||(l=g.events=Object.create(null)),(o=g.handle)||(o=g.handle=function(t){return void 0!==E&&E.event.triggered!==t.type?E.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match(W)||[""]).length;u--;)f=m=(s=Le.exec(t[u])||[])[1],p=(s[2]||"").split(".").sort(),f&&(c=E.event.special[f]||{},f=(r?c.delegateType:c.bindType)||f,c=E.event.special[f]||{},d=E.extend({type:f,origType:m,data:a,handler:n,guid:n.guid,selector:r,needsContext:r&&E.expr.match.needsContext.test(r),namespace:p.join(".")},i),(h=l[f])||((h=l[f]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(e,a,p,o)||e.addEventListener&&e.addEventListener(f,o)),c.add&&(c.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),r?h.splice(h.delegateCount++,0,d):h.push(d),E.event.global[f]=!0)},remove:function(e,t,n,a,r){var i,o,s,l,u,d,c,h,f,p,m,g=se.hasData(e)&&se.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match(W)||[""]).length;u--;)if(f=m=(s=Le.exec(t[u])||[])[1],p=(s[2]||"").split(".").sort(),f){for(c=E.event.special[f]||{},h=l[f=(a?c.delegateType:c.bindType)||f]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=i=h.length;i--;)d=h[i],!r&&m!==d.origType||n&&n.guid!==d.guid||s&&!s.test(d.namespace)||a&&a!==d.selector&&("**"!==a||!d.selector)||(h.splice(i,1),d.selector&&h.delegateCount--,c.remove&&c.remove.call(e,d));o&&!h.length&&(c.teardown&&!1!==c.teardown.call(e,p,g.handle)||E.removeEvent(e,f,g.handle),delete l[f])}else for(f in l)E.event.remove(e,f+t[u],n,a,!0);E.isEmptyObject(l)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,a,r,i,o,s=new Array(arguments.length),l=E.event.fix(e),u=(se.get(this,"events")||Object.create(null))[l.type]||[],d=E.event.special[l.type]||{};for(s[0]=l,t=1;t