[pbs-devel] [PATCH v4 proxmox 06/31] api types: implement remote acl path method for sync job
Christian Ebner
c.ebner at proxmox.com
Thu Oct 17 15:26:51 CEST 2024
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 <c.ebner at proxmox.com>
---
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<Vec<&str>> {
+ 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
More information about the pbs-devel
mailing list