[pmg-devel] [PATCH pmg-gui v8 13/13] user: add realm field for user creation

Markus Frank m.frank at proxmox.com
Wed Feb 26 15:07:40 CET 2025


Signed-off-by: Markus Frank <m.frank at proxmox.com>
---
 js/UserEdit.js | 47 ++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 40 insertions(+), 7 deletions(-)

diff --git a/js/UserEdit.js b/js/UserEdit.js
index bd94686..4c1e540 100644
--- a/js/UserEdit.js
+++ b/js/UserEdit.js
@@ -29,6 +29,26 @@ Ext.define('PMG.UserEdit', {
 	};
     },
 
+    viewModel: {
+	data: {
+	    realm: 'pmg',
+	},
+	formulas: {
+	    maySetPassword: function(get) {
+		let realm = get('realm');
+
+		let view = this.getView();
+		let realmStore = view.down('pmxRealmComboBox').getStore();
+		if (realmStore.isLoaded()) {
+		    let rec = realmStore.findRecord('realm', realm, 0, false, true, true);
+		    return rec.data.type === 'pmg' && view.isCreate;
+		} else {
+		    return view.isCreate;
+		}
+	    },
+	},
+    },
+
     items: {
 	xtype: 'inputpanel',
 	column1: [
@@ -58,9 +78,9 @@ Ext.define('PMG.UserEdit', {
 			field.next().validate();
                     },
 		},
-		cbind: {
-		    hidden: '{!isCreate}',
-		    disabled: '{!isCreate}',
+		bind: {
+		    hidden: '{!maySetPassword}',
+		    disabled: '{!maySetPassword}',
 		},
 	    },
 	    {
@@ -72,9 +92,9 @@ Ext.define('PMG.UserEdit', {
 		initialPassField: 'password',
 		allowBlank: false,
 		submitValue: false,
-		cbind: {
-		    hidden: '{!isCreate}',
-		    disabled: '{!isCreate}',
+		bind: {
+		    hidden: '{!maySetPassword}',
+		    disabled: '{!maySetPassword}',
 		},
 	    },
 	    {
@@ -111,6 +131,19 @@ Ext.define('PMG.UserEdit', {
 	],
 
 	column2: [
+	    {
+		xtype: 'pmxRealmComboBox',
+		reference: 'realmfield',
+		name: 'realm',
+		baseUrl: '/access/auth-realm',
+		bind: {
+		    value: '{realm}',
+		},
+		cbind: {
+		    disabled: '{!isCreate}',
+		    hidden: '{!isCreate}',
+		},
+	    },
 	    {
 		xtype: 'proxmoxtextfield',
 		name: 'firstname',
@@ -170,7 +203,7 @@ Ext.define('PMG.UserEdit', {
 	}
 
 	if (me.isCreate) {
-	    values.userid = values.username + '@pmg';
+	    values.userid = values.username + '@' + values.realm;
 	}
 
 	delete values.username;
-- 
2.39.5





More information about the pmg-devel mailing list