public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Proxmox Backup Server development discussion
	<pbs-devel@lists.proxmox.com>,
	Dominik Csapak <d.csapak@proxmox.com>
Subject: Re: [pbs-devel] [PATCH proxmox-backup v2 3/7] api2: add missing token list match_all property
Date: Wed, 15 Sep 2021 12:30:46 +0200	[thread overview]
Message-ID: <91fa308c-620d-ac62-875f-4a89d39048f1@proxmox.com> (raw)
In-Reply-To: <20210913141829.2171301-5-d.csapak@proxmox.com>

s/api2/api/ please.

On 13.09.21 16:18, Dominik Csapak wrote:
> to have the proper link between the token list and the sub routes
> in the api, include the 'tokenname' property in the token listing
> 

this sounds like that the link did not work or the like, but that is not
exactly the case, isn't it? Can we please state what provoked this patch
here.

> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
>  src/api2/access/user.rs | 35 ++++++++++++++++++++++++++++-------
>  1 file changed, 28 insertions(+), 7 deletions(-)
> 
> diff --git a/src/api2/access/user.rs b/src/api2/access/user.rs
> index 75071cf1..97c336ab 100644
> --- a/src/api2/access/user.rs
> +++ b/src/api2/access/user.rs
> @@ -655,6 +655,21 @@ pub fn delete_token(
>      Ok(())
>  }
>  
> +#[api(
> +    properties: {
> +        tokenname: { type: Tokenname },

we normally try to use kebab case, or is it not possible to use "token-name" here?

> +        token: { type: ApiToken },
> +    }
> +)]
> +#[derive(Serialize, Deserialize)]
> +/// A Token Entry of a user

that doc-comment is "meh" at best, casing and info is lacking and not sure if
"of an user" is relevant here. I'd mention that the token name is already
encoded and explicitly split out here for API's sake.

> +pub struct TokenInfo {

I'd find some merit in renaming this to clarify that it is rather a API specific
type that does not provides more info but just more explicit, that the original
type is named "ApiToken" doesn't make this easier though, and atm. I have no good
proposal, sorry, so just putting that opinion out there.

> +    /// The Token name
> +    pub tokenname: Tokenname,
> +    #[serde(flatten)]
> +    pub token: ApiToken,
> +}
> +
>  #[api(
>      input: {
>          properties: {
> @@ -666,7 +681,7 @@ pub fn delete_token(
>      returns: {
>          description: "List user's API tokens (with config digest).",
>          type: Array,
> -        items: { type: ApiToken },
> +        items: { type: TokenInfo },
>      },
>      access: {
>          permission: &Permission::Or(&[
> @@ -680,7 +695,7 @@ pub fn list_tokens(
>      userid: Userid,
>      _info: &ApiMethod,
>      mut rpcenv: &mut dyn RpcEnvironment,
> -) -> Result<Vec<ApiToken>, Error> {
> +) -> Result<Vec<TokenInfo>, Error> {
>  
>      let (config, digest) = pbs_config::user::config()?;
>  
> @@ -688,15 +703,21 @@ pub fn list_tokens(
>  
>      rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
>  
> -    let filter_by_owner = |token: &ApiToken| {
> -        if token.tokenid.is_token() {
> -           token.tokenid.user() == &userid
> +    let filter_by_owner = |token: ApiToken| {
> +        if token.tokenid.is_token() && token.tokenid.user() == &userid {
> +            let tokenname = token.tokenid.tokenname().unwrap().to_owned();

I'd like to try adding comments about why unwrap is safe. A panic possibility is
always a bit of a bummer, so showing that one thought about that and recording
that in a comment would be nice.

> +            Some(TokenInfo {
> +                tokenname,
> +                token,
> +            })
>          } else {
> -            false
> +            None
>          }
>      };
>  
> -    Ok(list.into_iter().filter(filter_by_owner).collect())
> +    let res = list.into_iter().filter_map(filter_by_owner).collect();
> +
> +    Ok(res)

nit: why adding a (useless?) intermediated `res` variable in above change?

>  }
>  
>  const TOKEN_ITEM_ROUTER: Router = Router::new()
> 





  reply	other threads:[~2021-09-15 10:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13 14:18 [pbs-devel] [PATCH proxmox/proxmox-backup v2] add 'pbs-shell' tool Dominik Csapak
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox v2 1/1] proxmox: generate_usage_str: don't require static lifetimes Dominik Csapak
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 1/7] server: refactor abort_local_worker Dominik Csapak
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 2/7] add 'pbs-shell' utility Dominik Csapak
2021-09-15 11:34   ` Thomas Lamprecht
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 3/7] api2: add missing token list match_all property Dominik Csapak
2021-09-15 10:30   ` Thomas Lamprecht [this message]
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 4/7] api2: disks/directory: refactor BASE_MOUNT_DIR Dominik Csapak
2021-09-15 10:02   ` [pbs-devel] applied: " Thomas Lamprecht
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 5/7] api2: disks/directory: add 'name' property to directory mount listing Dominik Csapak
2021-09-15 10:03   ` [pbs-devel] applied: " Thomas Lamprecht
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 6/7] api2: nodes: add missing node list api call Dominik Csapak
2021-09-13 14:18 ` [pbs-devel] [PATCH proxmox-backup v2 7/7] api2: make some workers log on CLI Dominik Csapak
2021-09-13 14:51   ` [pbs-devel] [PATCH proxmox-backup v3] " Dominik Csapak
2021-09-15  9:28 ` [pbs-devel] [PATCH proxmox/proxmox-backup v2] add 'pbs-shell' tool Hannes Laimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=91fa308c-620d-ac62-875f-4a89d39048f1@proxmox.com \
    --to=t.lamprecht@proxmox.com \
    --cc=d.csapak@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal