From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id B9D401FF0E9 for ; Thu, 16 Jul 2026 01:21:31 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id DB9FA2142F; Thu, 16 Jul 2026 01:21:30 +0200 (CEST) From: Thomas Lamprecht To: pve-devel@lists.proxmox.com Subject: [RFC PATCH manager 3/4] ui: acl: expose the 'additive' ACL flag Date: Thu, 16 Jul 2026 01:20:01 +0200 Message-ID: <20260715232121.1009607-4-t.lamprecht@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260715232121.1009607-1-t.lamprecht@proxmox.com> References: <20260715232121.1009607-1-t.lamprecht@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1784157668481 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.254 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_LOW -0.7 Sender listed at https://www.dnswl.org/, low trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: UGQOAL2EVEMIGTDSIO3AI3INSR6XWWE4 X-Message-ID-Hash: UGQOAL2EVEMIGTDSIO3AI3INSR6XWWE4 X-MailFrom: t.lamprecht@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Add an Additive checkbox to the add-permission dialog and a matching column to the ACL grid so the flag can be set and seen from the web UI. Additive requires propagate; tie the checkbox to Propagate (disabled and cleared when Propagate is off) to mirror the API, which rejects that combination. Signed-off-by: Thomas Lamprecht --- www/manager6/dc/ACLView.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/www/manager6/dc/ACLView.js b/www/manager6/dc/ACLView.js index 7cc260e02..5091f7b53 100644 --- a/www/manager6/dc/ACLView.js +++ b/www/manager6/dc/ACLView.js @@ -61,6 +61,22 @@ Ext.define('PVE.dc.ACLAdd', { checked: true, uncheckedValue: 0, fieldLabel: gettext('Propagate'), + listeners: { + // 'additive' requires 'propagate', so keep the checkbox in sync. + change: function (checkbox, value) { + let additive = checkbox.up('window').down('[name=additive]'); + additive.setDisabled(!value); + if (!value) { + additive.setValue(false); + } + }, + }, + }); + items.push({ + xtype: 'proxmoxcheckbox', + name: 'additive', + uncheckedValue: 0, + fieldLabel: gettext('Additive'), }); } @@ -152,6 +168,12 @@ Ext.define( sortable: true, dataIndex: 'propagate', }); + columns.push({ + header: gettext('Additive'), + width: 80, + sortable: true, + dataIndex: 'additive', + }); } let sm = Ext.create('Ext.selection.RowModel', {}); @@ -264,6 +286,10 @@ Ext.define( name: 'propagate', type: 'boolean', }, + { + name: 'additive', + type: 'boolean', + }, ], }); }, base-commit: 20242970da7fbcef28aa6844d5d889319cb532ef -- 2.47.3