On 1/21/20 1:54 PM, Fabian Grünbichler wrote: > 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; > } >
applied _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel