aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryemkareems <yemkareems@gmail.com>2024-10-17 11:10:19 +0530
committerGitHub <noreply@github.com>2024-10-17 11:10:19 +0530
commitde9f5c4ec6b441100cd3f79f246daf452049fe95 (patch)
treef64836d7dee802cc7fe3e5459f22769357e0225a
parentd4dffc156606e4f721042ff0ce8f9377c23d63a5 (diff)
parent1e13776a879989c1edbade539fea1a20f3abed90 (diff)
downloadnextcloud-server-de9f5c4ec6b441100cd3f79f246daf452049fe95.tar.gz
nextcloud-server-de9f5c4ec6b441100cd3f79f246daf452049fe95.zip
Merge pull request #48373 from nextcloud/fix/788/add-password-confirmation-required-to-user-storage-create
fix: add PasswordConfirmationRequired to create user storages endpoint
-rw-r--r--apps/files_external/js/settings.js22
-rw-r--r--apps/files_external/lib/Controller/UserStoragesController.php4
2 files changed, 25 insertions, 1 deletions
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 582276cad09..5cbd011bcc1 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -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}),
diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php
index ac806fe219c..0cd060b5294 100644
--- a/apps/files_external/lib/Controller/UserStoragesController.php
+++ b/apps/files_external/lib/Controller/UserStoragesController.php
@@ -13,6 +13,7 @@ use OCA\Files_External\NotFoundException;
use OCA\Files_External\Service\UserStoragesService;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
+use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\IConfig;
use OCP\IGroupManager;
@@ -99,6 +100,7 @@ class UserStoragesController extends StoragesController {
* @return DataResponse
*/
#[NoAdminRequired]
+ #[PasswordConfirmationRequired]
public function create(
$mountPoint,
$backend,
@@ -154,6 +156,7 @@ class UserStoragesController extends StoragesController {
* @return DataResponse
*/
#[NoAdminRequired]
+ #[PasswordConfirmationRequired]
public function update(
$id,
$mountPoint,
@@ -205,6 +208,7 @@ class UserStoragesController extends StoragesController {
* {@inheritdoc}
*/
#[NoAdminRequired]
+ #[PasswordConfirmationRequired]
public function destroy($id) {
return parent::destroy($id);
}