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

Reply via email to