From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 738001FF17E for ; Thu, 13 Nov 2025 14:57:47 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5EF7B1D3D0; Thu, 13 Nov 2025 14:58:42 +0100 (CET) Date: Thu, 13 Nov 2025 14:58:05 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Datacenter Manager development discussion References: <20251106143836.288888-1-s.sterz@proxmox.com> In-Reply-To: <20251106143836.288888-1-s.sterz@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.17.0 (https://github.com/astroidmail/astroid) Message-Id: <1763041798.famz3bfta9.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763042262664 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.045 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pdm-devel] [PATCH datacenter-manager/proxmox/yew-comp v3 00/10] add support for checking acl permissions in (yew) front-ends X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" On November 6, 2025 3:38 pm, Shannon Sterz wrote: > this patch series adds support for querying acl entries from the > front-end. it also makes it possible to reactively render ui components > depending on the user's privileges and refreshes this information every > time a new ticket is set. > > the first four patches make it possible to use the AclTree by itself in > the ui. first by creating a new feature that exposes only it and some > types to dependent crates. then some functions that basically just query > the AclTree are moved to the AclTree itself to make it easier to re-use > them. the fourth patch derives Debug and PartialEq on the AclTree and > AclTreeNode to make it easier to handle these types in the ui. finally > the last commit allows to query all of a user's acl entries via the > API_METHOD_READ_ACL endpoint. high-level question: the actual privilege checks in the backend use the full set of ACLs. the frontend can only ever see a subset of ACLs, since giving it all ACLs would leak a lot of sensitive information. doesn't that mean that the frontend will make wrong decisions in some scenarios? e.g., the backend currently doesn't return any group ACLs if you do exact filtering. but group ACLs can influence the ACL resolution > the next two patches first add an AclContext and AclContextProvider > implementation to proxmox-yew-comp. these allow applications to provide > acl information that components can hook into and get reactively > re-rendered. it also triggers reloading the acl information every time a > user logs in or a ticket gets refreshed. > > lastly, proxmox-datacenter-manager is adapted to use this new > functionality. the seventh commit moves the AccessControlConfig to the > shared api types crate, so we can re-use it in the front-end. then an > AclContextProvider is added to the main ui component. this allows > components to retrieve said AclContext and use it to conditionally > render ui components. the last commit adds just such functionality to > the notes section of the pdm ui. > > Follow-up > --------- > > if this series is applied, more ui components will need to be hooked > into the context to more widely use this functionality accross the > application. > > Changelog > --------- > > note that there was already a v2 [1] of this series, but this was a mistake > and should be considered a v1. sorry for the confusion. > > changes since v2: > > - combine impl only functions into private modules and impl blocks to > more cleanly separate them out (thanks @ Wolfgang Bumiller) > - add a small clean up commit for in-lining format string variables > > changes since v1: > > - move removing a use line to the right commit (thanks @ Dominik Csapak) > - instead of adapting the NodesView, simply avoid setting an on_submit > callback if the user doesn't have the permissions (thanks @ Dominik > Csapak) > > > proxmox: > > Shannon Sterz (5): > access-control: add acl feature to only expose types and the AclTree > access-control: use format strings where possible > access-control: move functions querying privileges to the AclTree > access-control: derive Debug and PartialEq on AclTree and AclTreeNode > access-control: allow reading all acls of the current authid > > proxmox-access-control/Cargo.toml | 5 +- > proxmox-access-control/src/acl.rs | 509 +++++++++++------- > proxmox-access-control/src/api/acl.rs | 37 +- > .../src/cached_user_info.rs | 91 +--- > proxmox-access-control/src/init.rs | 91 ++-- > proxmox-access-control/src/lib.rs | 4 +- > proxmox-access-control/src/token_shadow.rs | 2 +- > proxmox-access-control/src/user.rs | 3 +- > 8 files changed, 415 insertions(+), 327 deletions(-) > > > proxmox-yew-comp: > > Shannon Sterz (2): > acl_context: add AclContext and AclContextProvider > http_helpers: reload LocalAclTree when logging in or refreshing a > ticket > > Cargo.toml | 2 +- > src/acl_context.rs | 204 ++++++++++++++++++++++++++++++++++++++++++++ > src/http_helpers.rs | 5 ++ > src/lib.rs | 3 + > 4 files changed, 213 insertions(+), 1 deletion(-) > create mode 100644 src/acl_context.rs > > > proxmox-datacenter-manager: > > Shannon Sterz (3): > server/api-types: move AccessControlConfig to shared api types > ui: add an AclContext via the AclContextProvider to the main app ui > ui: main menu: use the AclContext to hide the Notes if appropriate > > lib/pdm-api-types/Cargo.toml | 1 + > lib/pdm-api-types/src/acl.rs | 158 ++++++++++++++++++++++++++++++++++ > server/src/acl.rs | 162 +---------------------------------- > ui/Cargo.toml | 1 + > ui/src/main.rs | 14 ++- > ui/src/main_menu.rs | 68 ++++++++++----- > 6 files changed, 221 insertions(+), 183 deletions(-) > > > Summary over all repositories: > 18 files changed, 849 insertions(+), 511 deletions(-) > > -- > Generated by git-murpp 0.8.1 > > > _______________________________________________ > pdm-devel mailing list > pdm-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel > > > _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel