otherwise we need 1+N API calls to retrieve the full user+token picture Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> ---
Notes: new in v2 PVE/API2/User.pm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/PVE/API2/User.pm b/PVE/API2/User.pm index fb985dd..0fc88ad 100644 --- a/PVE/API2/User.pm +++ b/PVE/API2/User.pm @@ -119,6 +119,12 @@ __PACKAGE__->register_method ({ type => 'boolean', description => "Optional filter for enable property.", optional => 1, + }, + full => { + type => 'boolean', + description => "Include group and token information.", + optional => 1, + default => 0, } }, }, @@ -135,6 +141,14 @@ __PACKAGE__->register_method ({ email => get_standard_option('user-email'), comment => get_standard_option('user-comment'), keys => get_standard_option('user-keys'), + groups => get_standard_option('group-list'), + tokens => { + type => 'array', + optional => 1, + items => $token_info_extend->({ + tokenid => get_standard_option('token-subid'), + }), + } }, }, links => [ { rel => 'child', href => "{userid}" } ], @@ -154,18 +168,21 @@ __PACKAGE__->register_method ({ my $allowed_users = $rpcenv->group_member_join([keys %$groups]); foreach my $user (keys %{$usercfg->{users}}) { - if (!($canUserMod || $user eq $authuser)) { next if !$allowed_users->{$user}; } - my $entry = &$extract_user_data($usercfg->{users}->{$user}); + my $entry = &$extract_user_data($usercfg->{users}->{$user}, $param->{full}); if (defined($param->{enabled})) { next if $entry->{enable} && !$param->{enabled}; next if !$entry->{enable} && $param->{enabled}; } + $entry->{groups} = join(',', @{$entry->{groups}}) if $entry->{groups}; + $entry->{tokens} = [ map { { tokenid => $_, %{$entry->{tokens}->{$_}} } } sort keys %{$entry->{tokens}} ] + if defined($entry->{tokens}); + $entry->{userid} = $user; push @$res, $entry; } -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel