* [pve-devel] [PATCH pve-access-control 0/2] api: token: fix #6890: allow comment removal via delete parameter or empty string @ 2025-10-08 11:19 Nicolas Frey 2025-10-08 11:19 ` [pve-devel] [PATCH pve-access-control 1/2] api: token: fix #6890: add ability to remove comment with " Nicolas Frey 2025-10-08 11:19 ` [pve-devel] [PATCH pve-access-control 2/2] api: token: add delete parameter for comment Nicolas Frey 0 siblings, 2 replies; 3+ messages in thread From: Nicolas Frey @ 2025-10-08 11:19 UTC (permalink / raw) To: pve-devel this patch series fixes #6890, which reported that removal of the comment property on tokens was not possible. Also adds a delete param which behaves the same as if the comment was set to an empty string. Nicolas Frey (2): api: token: fix #6890: add ability to remove comment with empty string api: token: add delete parameter for comment src/PVE/API2/User.pm | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) -- 2.47.3 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pve-devel] [PATCH pve-access-control 1/2] api: token: fix #6890: add ability to remove comment with empty string 2025-10-08 11:19 [pve-devel] [PATCH pve-access-control 0/2] api: token: fix #6890: allow comment removal via delete parameter or empty string Nicolas Frey @ 2025-10-08 11:19 ` Nicolas Frey 2025-10-08 11:19 ` [pve-devel] [PATCH pve-access-control 2/2] api: token: add delete parameter for comment Nicolas Frey 1 sibling, 0 replies; 3+ messages in thread From: Nicolas Frey @ 2025-10-08 11:19 UTC (permalink / raw) To: pve-devel Beforehand, if the comment was an empty string, it would not update the token to have it's comment deleted. Adds missing defined check instead of checking truthy value (i.e. an empty string being falsy). The comment is also explicitly deleted, because the response would otherwise return the comment as empty, not deleted: ┌─────────┬───────┐ │ key │ value │ ╞═════════╪═══════╡ │ comment │ │ ├─────────┼───────┤ │ expire │ 0 │ ├─────────┼───────┤ │ privsep │ 1 │ └─────────┴───────┘ instead of: ┌─────────┬───────┐ │ key │ value │ ╞═════════╪═══════╡ │ expire │ 0 │ ├─────────┼───────┤ │ privsep │ 1 │ └─────────┴───────┘ Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=6890 Signed-off-by: Nicolas Frey <n.frey@proxmox.com> --- src/PVE/API2/User.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PVE/API2/User.pm b/src/PVE/API2/User.pm index 5041fbe..e7c895e 100644 --- a/src/PVE/API2/User.pm +++ b/src/PVE/API2/User.pm @@ -870,7 +870,8 @@ __PACKAGE__->register_method({ $token->{privsep} = $param->{privsep} if defined($param->{privsep}); $token->{expire} = $param->{expire} if defined($param->{expire}); - $token->{comment} = $param->{comment} if $param->{comment}; + $token->{comment} = $param->{comment} if defined($param->{comment}); + delete $token->{comment} if (!length $token->{comment}); $usercfg->{users}->{$userid}->{tokens}->{$tokenid} = $token; cfs_write_file("user.cfg", $usercfg); -- 2.47.3 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pve-devel] [PATCH pve-access-control 2/2] api: token: add delete parameter for comment 2025-10-08 11:19 [pve-devel] [PATCH pve-access-control 0/2] api: token: fix #6890: allow comment removal via delete parameter or empty string Nicolas Frey 2025-10-08 11:19 ` [pve-devel] [PATCH pve-access-control 1/2] api: token: fix #6890: add ability to remove comment with " Nicolas Frey @ 2025-10-08 11:19 ` Nicolas Frey 1 sibling, 0 replies; 3+ messages in thread From: Nicolas Frey @ 2025-10-08 11:19 UTC (permalink / raw) To: pve-devel Adds delete parameter to the endpoint, which was suggested by Fabian Grünbichler in the bug report. Suggested-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> Signed-off-by: Nicolas Frey <n.frey@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 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-10-08 11:20 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-10-08 11:19 [pve-devel] [PATCH pve-access-control 0/2] api: token: fix #6890: allow comment removal via delete parameter or empty string Nicolas Frey 2025-10-08 11:19 ` [pve-devel] [PATCH pve-access-control 1/2] api: token: fix #6890: add ability to remove comment with " Nicolas Frey 2025-10-08 11:19 ` [pve-devel] [PATCH pve-access-control 2/2] api: token: add delete parameter for comment Nicolas Frey
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.