From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 616061FF15E for ; Fri, 18 Oct 2024 10:42:26 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id CA2731DE2E; Fri, 18 Oct 2024 10:42:57 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Fri, 18 Oct 2024 10:42:17 +0200 Message-Id: <20241018084242.144010-7-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241018084242.144010-1-c.ebner@proxmox.com> References: <20241018084242.144010-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.027 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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 v5 proxmox-backup 06/31] api types: implement remote acl path method for sync job 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: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Add `remote_acl_path` method which generates the acl path from the sync job configuration. This helper allows to easily generate the acl path from a given sync job config for privilege checks. Signed-off-by: Christian Ebner --- changes since version 4: - no changes changes since version 3: - not present in previous version pbs-api-types/src/jobs.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pbs-api-types/src/jobs.rs b/pbs-api-types/src/jobs.rs index 868702bc0..3971dd49f 100644 --- a/pbs-api-types/src/jobs.rs +++ b/pbs-api-types/src/jobs.rs @@ -594,6 +594,19 @@ impl SyncJobConfig { None => vec!["datastore", &self.store], } } + + pub fn remote_acl_path(&self) -> Option> { + let remote = self.remote.as_ref()?; + let mut remote_acl_path = vec!["remote", remote, &self.remote_store]; + + if let Some(namespace) = self.remote_ns.as_ref() { + if !namespace.is_root() { + let comp: Vec<&str> = namespace.components().collect(); + remote_acl_path.extend(comp); + } + } + Some(remote_acl_path) + } } #[api( -- 2.39.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel