[pve-devel] [PATCH pve-access-control 2/2] api: token: add delete parameter for comment

Nicolas Frey n.frey at proxmox.com
Wed Oct 8 13:19:20 CEST 2025


Adds delete parameter to the endpoint, which was suggested by Fabian
Grünbichler in the bug report.

Suggested-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
Signed-off-by: Nicolas Frey <n.frey at proxmox.com>
---
 src/PVE/API2/User.pm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/PVE/API2/User.pm b/src/PVE/API2/User.pm
index e7c895e..4742f17 100644
--- a/src/PVE/API2/User.pm
+++ b/src/PVE/API2/User.pm
@@ -848,6 +848,12 @@ __PACKAGE__->register_method({
             expire => get_standard_option('token-expire'),
             privsep => get_standard_option('token-privsep'),
             comment => get_standard_option('token-comment'),
+            delete => {
+                type => 'string',
+                format => 'pve-configid-list',
+                description => "A list of settings you want to delete.",
+                optional => 1,
+            },
         },
     },
     returns =>
@@ -861,6 +867,9 @@ __PACKAGE__->register_method({
         my $usercfg = cfs_read_file("user.cfg");
         my $token = PVE::AccessControl::check_token_exist($usercfg, $userid, $tokenid);
 
+        my $delete = extract_param($param, 'delete');
+        $delete = { map { $_ => 1 } PVE::Tools::split_list($delete) } if $delete;
+
         PVE::AccessControl::lock_user_config(
             sub {
                 $usercfg = cfs_read_file("user.cfg");
@@ -873,6 +882,18 @@ __PACKAGE__->register_method({
                 $token->{comment} = $param->{comment} if defined($param->{comment});
                 delete $token->{comment} if (!length $token->{comment});
 
+                my $deletable = {
+                    comment => 1,
+                };
+
+                for my $k (keys $delete->%*) {
+                    if (!$deletable->{$k}) {
+                        raise_param_exc({ delete => "unknown option '$k'" });
+                    }
+
+                    delete $token->{$k};
+                }
+
                 $usercfg->{users}->{$userid}->{tokens}->{$tokenid} = $token;
                 cfs_write_file("user.cfg", $usercfg);
             },
-- 
2.47.3




More information about the pve-devel mailing list