[pbs-devel] [PATCH proxmox-backup 6/6] fix #3887: ui: add regenerate token button

Hannes Laimer h.laimer at proxmox.com
Thu Mar 20 14:57:48 CET 2025


Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
 www/config/TokenView.js | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/www/config/TokenView.js b/www/config/TokenView.js
index 6282a4d4..340698ad 100644
--- a/www/config/TokenView.js
+++ b/www/config/TokenView.js
@@ -100,6 +100,25 @@ Ext.define('PBS.config.TokenView', {
 	    }).show();
 	},
 
+	regenerateToken: function(_button, _event, record) {
+	    let tokenid = record.data.tokenid;
+	    let user = PBS.Utils.extractTokenUser(tokenid);
+	    let tokenname = PBS.Utils.extractTokenName(tokenid);
+	    Proxmox.Utils.API2Request({
+	        method: 'PUT',
+	        url: `/access/users/${user}/token/${tokenname}`,
+	        params: { 'regenerate': true },
+	        success: function(res, opt) {
+		    Ext.create("PBS.window.TokenShow", {
+			autoShow: true,
+			tokenid: tokenid,
+			secret: res.result.data.secret,
+		    });
+	        },
+	        failure: res => Ext.Msg.alert(gettext("Error"), res.htmlStatus),
+	    });
+	},
+
 	showPermissions: function() {
 	    let me = this;
 	    let view = me.getView();
@@ -174,6 +193,16 @@ Ext.define('PBS.config.TokenView', {
 	    handler: 'showPermissions',
 	    disabled: true,
 	},
+	{
+	    xtype: 'proxmoxButton',
+	    text: gettext('Regenerate'),
+	    handler: 'regenerateToken',
+	    dangerous: true,
+	    confirmMsg: rec => Ext.String.format(
+		gettext("Regenerate the secret of the API token '{0}'? All current use-sites will loose access!"),
+		rec.data.tokenid,
+	    ),
+	},
     ],
 
     viewConfig: {
-- 
2.39.5





More information about the pbs-devel mailing list