]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix: Add frontend code for password confirmation backport/48373/stable30 48748/head
authorFerdinand Thiessen <opensource@fthiessen.de>
Mon, 14 Oct 2024 13:12:16 +0000 (15:12 +0200)
committerFerdinand Thiessen <opensource@fthiessen.de>
Fri, 18 Oct 2024 09:28:37 +0000 (11:28 +0200)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
apps/files_external/js/settings.js

index 582276cad09406568ff6014707adea4ae88ebc0f..5cbd011bcc1ba9c40cd976894d2e66c2188e40c7 100644 (file)
@@ -267,7 +267,6 @@ StorageConfig.prototype = {
         * @param {Function} [options.error] error callback
         */
        save: function(options) {
-               var self = this;
                var url = OC.generateUrl(this._url);
                var method = 'POST';
                if (_.isNumber(this.id)) {
@@ -275,6 +274,18 @@ StorageConfig.prototype = {
                        url = OC.generateUrl(this._url + '/{id}', {id: this.id});
                }
 
+               window.OC.PasswordConfirmation.requirePasswordConfirmation(() => this._save(method, url, options), options.error);
+       },
+
+       /**
+        * Private implementation of the save function (called after potential password confirmation)
+        * @param {string} method 
+        * @param {string} url 
+        * @param {{success: Function, error: Function}} options 
+        */
+       _save: function(method, url, options) {
+               self = this;
+
                $.ajax({
                        type: method,
                        url: url,
@@ -348,6 +359,15 @@ StorageConfig.prototype = {
                        }
                        return;
                }
+
+               window.OC.PasswordConfirmation.requirePasswordConfirmation(() => this._destroy(options), options.error)
+       },
+
+       /**
+        * Private implementation of the DELETE method called after password confirmation
+        * @param {{ success: Function, error: Function }} options 
+        */
+       _destroy: function(options) {
                $.ajax({
                        type: 'DELETE',
                        url: OC.generateUrl(this._url + '/{id}', {id: this.id}),