diff options
Diffstat (limited to 'apps/files_external')
-rw-r--r-- | apps/files_external/lib/Controller/AjaxController.php | 2 | ||||
-rw-r--r-- | apps/files_external/lib/Controller/GlobalStoragesController.php | 4 | ||||
-rw-r--r-- | apps/files_external/lib/Controller/StoragesController.php | 2 | ||||
-rw-r--r-- | apps/files_external/lib/Controller/UserGlobalStoragesController.php | 2 | ||||
-rw-r--r-- | apps/files_external/lib/Controller/UserStoragesController.php | 6 | ||||
-rw-r--r-- | apps/files_external/src/settings.js (renamed from apps/files_external/js/settings.js) | 104 | ||||
-rw-r--r-- | apps/files_external/templates/settings.php | 6 |
7 files changed, 57 insertions, 69 deletions
diff --git a/apps/files_external/lib/Controller/AjaxController.php b/apps/files_external/lib/Controller/AjaxController.php index 3934b12c7fa..3332044c948 100644 --- a/apps/files_external/lib/Controller/AjaxController.php +++ b/apps/files_external/lib/Controller/AjaxController.php @@ -72,7 +72,7 @@ class AjaxController extends Controller { * @return bool */ #[NoAdminRequired] - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function saveGlobalCredentials($uid, $user, $password) { $currentUser = $this->userSession->getUser(); if ($currentUser === null) { diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php index 85d765d268b..466c4f6f551 100644 --- a/apps/files_external/lib/Controller/GlobalStoragesController.php +++ b/apps/files_external/lib/Controller/GlobalStoragesController.php @@ -70,7 +70,7 @@ class GlobalStoragesController extends StoragesController { * * @return DataResponse */ - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function create( $mountPoint, $backend, @@ -136,7 +136,7 @@ class GlobalStoragesController extends StoragesController { * * @return DataResponse */ - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function update( $id, $mountPoint, diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php index 858143e5056..72bcbd48a4c 100644 --- a/apps/files_external/lib/Controller/StoragesController.php +++ b/apps/files_external/lib/Controller/StoragesController.php @@ -302,7 +302,7 @@ abstract class StoragesController extends Controller { * * @return DataResponse */ - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function destroy(int $id) { try { $this->service->removeStorage($id); diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php index 355df7fb726..a7c4fc61997 100644 --- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php +++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php @@ -137,7 +137,7 @@ class UserGlobalStoragesController extends StoragesController { * @return DataResponse */ #[NoAdminRequired] - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function update( $id, $backendOptions, diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php index 05984ad1a88..6d797b5818d 100644 --- a/apps/files_external/lib/Controller/UserStoragesController.php +++ b/apps/files_external/lib/Controller/UserStoragesController.php @@ -100,7 +100,7 @@ class UserStoragesController extends StoragesController { * @return DataResponse */ #[NoAdminRequired] - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function create( $mountPoint, $backend, @@ -156,7 +156,7 @@ class UserStoragesController extends StoragesController { * @return DataResponse */ #[NoAdminRequired] - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function update( $id, $mountPoint, @@ -208,7 +208,7 @@ class UserStoragesController extends StoragesController { * {@inheritdoc} */ #[NoAdminRequired] - #[PasswordConfirmationRequired] + #[PasswordConfirmationRequired(strict: true)] public function destroy(int $id) { return parent::destroy($id); } diff --git a/apps/files_external/js/settings.js b/apps/files_external/src/settings.js index 61f1696545a..1dac6e80eee 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/src/settings.js @@ -4,7 +4,11 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -(function(){ +import axios from '@nextcloud/axios' +import { t } from '@nextcloud/l10n' +import { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation' + +addPasswordConfirmationInterceptors(axios) /** * Returns the selection of applicable users in the given configuration row @@ -274,7 +278,7 @@ StorageConfig.prototype = { url = OC.generateUrl(this._url + '/{id}', {id: this.id}); } - window.OC.PasswordConfirmation.requirePasswordConfirmation(() => this._save(method, url, options), options.error); + this._save(method, url, options); }, /** @@ -283,22 +287,20 @@ StorageConfig.prototype = { * @param {string} url * @param {{success: Function, error: Function}} options */ - _save: function(method, url, options) { - self = this; - - $.ajax({ - type: method, - url: url, - contentType: 'application/json', - data: JSON.stringify(this.getData()), - success: function(result) { - self.id = result.id; - if (_.isFunction(options.success)) { - options.success(result); - } - }, - error: options.error - }); + _save: async function(method, url, options) { + try { + const response = await axios.request({ + confirmPassword: PwdConfirmationMode.Strict, + method: method, + url: url, + data: this.getData(), + }) + const result = response.data + this.id = result.id + options.success(result) + } catch (error) { + options.error(error) + } }, /** @@ -351,7 +353,7 @@ StorageConfig.prototype = { * @param {Function} [options.success] success callback * @param {Function} [options.error] error callback */ - destroy: function(options) { + destroy: async function(options) { if (!_.isNumber(this.id)) { // the storage hasn't even been created => success if (_.isFunction(options.success)) { @@ -360,20 +362,16 @@ 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}), - success: options.success, - error: options.error - }); + try { + await axios.request({ + method: 'DELETE', + url: OC.generateUrl(this._url + '/{id}', {id: this.id}), + confirmPassword: PwdConfirmationMode.Strict, + }) + options.success() + } catch (e) { + options.error(e) + } }, /** @@ -1486,38 +1484,32 @@ window.addEventListener('DOMContentLoaded', function() { $allowUserMounting.trigger('change'); } - }); + }) + + $('#global_credentials').on('submit', async function (event) { + event.preventDefault(); + var $form = $(this); + var $submit = $form.find('[type=submit]'); + $submit.val(t('files_external', 'Saving …')); - function _submitCredentials(success) { var uid = $form.find('[name=uid]').val(); var user = $form.find('[name=username]').val(); var password = $form.find('[name=password]').val(); - $.ajax({ - type: 'POST', - contentType: 'application/json', + await axios.request({ + method: 'POST', data: JSON.stringify({ uid, user, password, }), - url: OC.generateUrl('apps/files_external/globalcredentials'), - dataType: 'json', - success, - }); - } - - $('#global_credentials').on('submit', function() { - var $form = $(this); - var $submit = $form.find('[type=submit]'); - $submit.val(t('files_external', 'Saving …')); + url: OC.generateUrl('apps/files_external/globalcredentials'), + confirmPassword: PwdConfirmationMode.Strict, + }) - window.OC.PasswordConfirmation - .requirePasswordConfirmation(() => _submitCredentials(function() { - $submit.val(t('files_external', 'Saved')); - setTimeout(function(){ - $submit.val(t('files_external', 'Save')); - }, 2500); - })); + $submit.val(t('files_external', 'Saved')); + setTimeout(function(){ + $submit.val(t('files_external', 'Save')); + }, 2500); return false; }); @@ -1547,5 +1539,3 @@ OCA.Files_External.Settings = OCA.Files_External.Settings || {}; OCA.Files_External.Settings.GlobalStorageConfig = GlobalStorageConfig; OCA.Files_External.Settings.UserStorageConfig = UserStorageConfig; OCA.Files_External.Settings.MountConfigListView = MountConfigListView; - -})(); diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index 0ebb5800d29..c5af1bddaa7 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -22,10 +22,8 @@ $l->t('Never'); $l->t('Once every direct access'); $l->t('Read only'); -script('files_external', [ - 'settings', - 'templates' -]); +\OCP\Util::addScript('files_external', 'settings'); +\OCP\Util::addScript('files_external', 'templates'); style('files_external', 'settings'); // load custom JS |