[pmg-devel] [PATCH widget-toolkit v1 1/2] window: add optional autocreate-role selector to openid realm edit

Markus Frank m.frank at proxmox.com
Thu Feb 27 08:55:16 CET 2025


The enableRoleSelector option enables the role selector, and
roleSelector can be overridden with a specific role selector such as
pmgRoleSelector (displayfield is used as a placeholder for the role
selector).

Signed-off-by: Markus Frank <m.frank at proxmox.com>
---
 src/panel/AuthView.js        |  4 ++++
 src/window/AuthEditBase.js   |  6 ++++++
 src/window/AuthEditOpenId.js | 35 +++++++++++++++++++++++------------
 3 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/src/panel/AuthView.js b/src/panel/AuthView.js
index 7bebf0d..2f777fc 100644
--- a/src/panel/AuthView.js
+++ b/src/panel/AuthView.js
@@ -14,6 +14,8 @@ Ext.define('Proxmox.panel.AuthView', {
 
     baseUrl: '/access/domains',
     storeBaseUrl: '/access/domains',
+    enableRoleSelector: false,
+    roleSelector: 'displayfield',
 
     columns: [
 	{
@@ -54,6 +56,8 @@ Ext.define('Proxmox.panel.AuthView', {
 
 	Ext.create('Proxmox.window.AuthEditBase', {
 	    baseUrl: me.baseUrl,
+	    enableRoleSelector: me.enableRoleSelector,
+	    roleSelector: me.roleSelector,
 	    useTypeInUrl,
 	    onlineHelp,
 	    authType,
diff --git a/src/window/AuthEditBase.js b/src/window/AuthEditBase.js
index e044235..861d082 100644
--- a/src/window/AuthEditBase.js
+++ b/src/window/AuthEditBase.js
@@ -12,6 +12,8 @@ Ext.define('Proxmox.window.AuthEditBase', {
 
     baseurl: '/access/domains',
     useTypeInUrl: false,
+    enableRoleSelector: false,
+    roleSelector: 'displayfield',
 
     initComponent: function() {
 	var me = this;
@@ -53,6 +55,8 @@ Ext.define('Proxmox.window.AuthEditBase', {
 			title: gettext('General'),
 			realm: me.realm,
 			xtype: authConfig.ipanel,
+			enableRoleSelector: me.enableRoleSelector,
+			roleSelector: me.roleSelector,
 			isCreate: me.isCreate,
 			useTypeInUrl: me.useTypeInUrl,
 			type: me.authType,
@@ -71,6 +75,8 @@ Ext.define('Proxmox.window.AuthEditBase', {
 	    items = [{
 		realm: me.realm,
 		xtype: authConfig.ipanel,
+		enableRoleSelector: me.enableRoleSelector,
+		roleSelector: me.roleSelector,
 		isCreate: me.isCreate,
 		useTypeInUrl: me.useTypeInUrl,
 		type: me.authType,
diff --git a/src/window/AuthEditOpenId.js b/src/window/AuthEditOpenId.js
index ed0a6dc..3610c71 100644
--- a/src/window/AuthEditOpenId.js
+++ b/src/window/AuthEditOpenId.js
@@ -66,18 +66,6 @@ Ext.define('Proxmox.panel.OpenIDInputPanel', {
 	    },
 	    name: 'client-key',
 	},
-    ],
-
-    column2: [
-	{
-	    xtype: 'proxmoxcheckbox',
-	    fieldLabel: gettext('Autocreate Users'),
-	    name: 'autocreate',
-	    value: 0,
-	    cbind: {
-		deleteEmpty: '{!isCreate}',
-	    },
-	},
 	{
 	    xtype: 'pmxDisplayEditField',
 	    name: 'username-claim',
@@ -98,6 +86,29 @@ Ext.define('Proxmox.panel.OpenIDInputPanel', {
 		editable: '{isCreate}',
 	    },
 	},
+    ],
+
+    column2: [
+	{
+	    xtype: 'proxmoxcheckbox',
+	    fieldLabel: gettext('Autocreate Users'),
+	    name: 'autocreate',
+	    value: 0,
+	    cbind: {
+		deleteEmpty: '{!isCreate}',
+	    },
+	},
+	{
+	    name: 'autocreate-role',
+	    allowBlank: true,
+	    deleteEmpty: false,
+	    fieldLabel: gettext('Autocreate Role'),
+	    cbind: {
+		xtype: '{roleSelector}',
+		disabled: '{!enableRoleSelector}',
+		hidden: '{!enableRoleSelector}',
+	    },
+	},
 	{
 	    xtype: 'proxmoxtextfield',
 	    name: 'scopes',
-- 
2.39.5





More information about the pmg-devel mailing list