From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id EEDF46953F for ; Mon, 13 Sep 2021 16:18:31 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EB6192AEA2 for ; Mon, 13 Sep 2021 16:18:31 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 6B0422AE76 for ; Mon, 13 Sep 2021 16:18:30 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 43160447F8 for ; Mon, 13 Sep 2021 16:18:30 +0200 (CEST) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Mon, 13 Sep 2021 16:18:25 +0200 Message-Id: <20210913141829.2171301-5-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210913141829.2171301-1-d.csapak@proxmox.com> References: <20210913141829.2171301-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.391 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup v2 3/7] api2: add missing token list match_all property X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2021 14:18:32 -0000 to have the proper link between the token list and the sub routes in the api, include the 'tokenname' property in the token listing Signed-off-by: Dominik Csapak --- 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 }, + token: { type: ApiToken }, + } +)] +#[derive(Serialize, Deserialize)] +/// A Token Entry of a user +pub struct TokenInfo { + /// 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, Error> { +) -> Result, 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(); + 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) } const TOKEN_ITEM_ROUTER: Router = Router::new() -- 2.30.2