[pdm-devel] [PATCH datacenter-manager v2 2/2] ui: add an AclContext via the AclContextProvider to the main app ui

Shannon Sterz s.sterz at proxmox.com
Wed Oct 22 15:11:24 CEST 2025


by adding an `AclContextProvider` each component below can query the
current `AclContext` and get re-rendered if it changes.

Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
 ui/Cargo.toml  |  1 +
 ui/src/main.rs | 14 +++++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/ui/Cargo.toml b/ui/Cargo.toml
index 526380e..a901ff0 100644
--- a/ui/Cargo.toml
+++ b/ui/Cargo.toml
@@ -38,6 +38,7 @@ proxmox-human-byte = "1"
 proxmox-login = "1"
 proxmox-schema = "5"
 proxmox-rrd-api-types = "1"
+proxmox-access-control = { version = "1.1", features = []}
 pbs-api-types = "1.0.3"
 
 pdm-api-types = { version = "0.9", path = "../lib/pdm-api-types" }
diff --git a/ui/src/main.rs b/ui/src/main.rs
index 715ecec..3465d24 100644
--- a/ui/src/main.rs
+++ b/ui/src/main.rs
@@ -17,8 +17,8 @@ use pbs_api_types::TaskListItem;
 use proxmox_login::Authentication;
 use proxmox_yew_comp::utils::init_task_descr_table_base;
 use proxmox_yew_comp::{
-    authentication_from_cookie, http_get, register_auth_observer, AuthObserver, LoginPanel,
-    SubscriptionAlert,
+    authentication_from_cookie, http_get, register_auth_observer, AclContextProvider, AuthObserver,
+    LoginPanel, SubscriptionAlert,
 };
 
 //use pbs::MainMenu;
@@ -293,7 +293,9 @@ impl Component for DatacenterManagerApp {
         DesktopApp::new(html! {
             <ContextProvider<SearchProvider> context={search_context}>
                 <ContextProvider<RemoteList> {context}>
-                    {body}
+                    <AclContextProvider>
+                        {body}
+                    </AclContextProvider>
                 </ContextProvider<RemoteList>>
             </ContextProvider<SearchProvider>>
         })
@@ -342,5 +344,11 @@ fn main() {
 
     pwt::state::set_available_languages(proxmox_yew_comp::available_language_list());
 
+    if let Err(e) =
+        proxmox_access_control::init::init_access_config(&pdm_api_types::AccessControlConfig)
+    {
+        log::error!("could not initialize access control config - {e:#}");
+    }
+
     yew::Renderer::<DatacenterManagerApp>::new().render();
 }
-- 
2.47.3





More information about the pdm-devel mailing list