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

Shannon Sterz s.sterz at proxmox.com
Fri Nov 14 15:43:17 CET 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>
Reviewed-by: Lukas Wagner <l.wagner at proxmox.com>
Tested-by: Lukas Wagner <l.wagner 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 8da9351..1026ed5 100644
--- a/ui/Cargo.toml
+++ b/ui/Cargo.toml
@@ -32,6 +32,7 @@ pwt-macros = "0.5"

 proxmox-yew-comp = { version = "0.7.1", features = ["apt", "dns", "network", "rrd"] }

+proxmox-access-control = { version = "1.1", features = []}
 proxmox-acme-api = "1"
 proxmox-client = "1"
 proxmox-human-byte = "1"
diff --git a/ui/src/main.rs b/ui/src/main.rs
index f8a44f5..d9423d3 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