public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] applied: [PATCH backup 1/2] ui: user edit: fix filtering out pam realm on user-add
@ 2023-03-28 16:55 Thomas Lamprecht
  2023-03-28 16:55 ` [pbs-devel] applied: [PATCH backup 2/2] ui: user edit: rework interaction of realm and view model Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Thomas Lamprecht @ 2023-03-28 16:55 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
 www/window/UserEdit.js | 23 +----------------------
 1 file changed, 1 insertion(+), 22 deletions(-)

diff --git a/www/window/UserEdit.js b/www/window/UserEdit.js
index 092ff31f..0129aeed 100644
--- a/www/window/UserEdit.js
+++ b/www/window/UserEdit.js
@@ -84,29 +84,8 @@ Ext.define('PBS.window.UserEdit', {
 		    hidden: '{!isCreate}',
 		    disabled: '{!isCreate}',
 		},
-
 		submitValue: true,
-		// Let's override the default controller so that we can
-		// remove the PAM realm. We don't want to manually add users
-		// for the PAM realm.
-		controller: {
-		    xclass: 'Ext.app.ViewController',
-
-		    init: function(view) {
-			view.store.on('load', this.onLoad, view);
-		    },
-
-		    onLoad: function(store, records, success) {
-			if (!success) {
-			    return;
-			}
-
-			let pamRecord = this.store.findRecord('realm', 'pam', 0, false, true, true);
-
-			this.store.remove(pamRecord);
-			this.setValue('pbs');
-		    },
-		},
+		storeFilter: rec => rec.data?.type !== 'pam',
 	    },
 	    {
 		xtype: 'textfield',
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pbs-devel] applied: [PATCH backup 2/2] ui: user edit: rework interaction of realm and view model
  2023-03-28 16:55 [pbs-devel] applied: [PATCH backup 1/2] ui: user edit: fix filtering out pam realm on user-add Thomas Lamprecht
@ 2023-03-28 16:55 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2023-03-28 16:55 UTC (permalink / raw)
  To: pbs-devel

avoid accessing private members directly but rather try to use the
public API, this then allows us do drop declaring a reference on the
realm combobox, which was not directly used and thus a bit subtle.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---

still not the cleanest approach in general IMO, it probably would be
better to move the "can PW change" logic into the combobox (either in a
child here or in widget toolkit) and, e.g., expose it via a
selectionCanChangePW like getter there which can then be bindend here.

 www/window/UserEdit.js | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/www/window/UserEdit.js b/www/window/UserEdit.js
index 0129aeed..63a6f7f8 100644
--- a/www/window/UserEdit.js
+++ b/www/window/UserEdit.js
@@ -1,6 +1,5 @@
 Ext.define('PBS.window.UserEditViewModel', {
     extend: 'Ext.app.ViewModel',
-
     alias: 'viewmodel.pbsUserEdit',
 
     data: {
@@ -9,15 +8,16 @@ Ext.define('PBS.window.UserEditViewModel', {
 
     formulas: {
 	maySetPassword: function(get) {
-	    // Dummy read, so that ExtJS will update the formula when
-	    // the combobox changes
-	    let _dummy = get('realm');
+	    let realm = get('realm');
 
-	    // All in all a bit hacky, is there a nicer way to do this?
-	    let realm_type = this.data.realmComboBox.selection?.data.type
-		? this.data.realmComboBox.selection?.data.type : 'pbs';
-
-	    return Proxmox.Schema.authDomains[realm_type].pwchange && this.config.view.isCreate;
+	    let view = this.getView();
+	    let realmStore = view.down('pmxRealmComboBox').getStore();
+	    if (realmStore.isLoaded()) {
+		let rec = realmStore.findRecord('realm', realm, 0, false, true, true);
+		return Proxmox.Schema.authDomains[rec.data.type]?.pwchange && view.isCreate;
+	    } else {
+		return view.isCreate;
+	    }
 	},
     },
 });
@@ -78,8 +78,9 @@ Ext.define('PBS.window.UserEdit', {
 		allowBlank: false,
 		matchFieldWidth: false,
 		listConfig: { width: 300 },
-		reference: 'realmComboBox',
-		bind: '{realm}',
+		bind: {
+		    value: '{realm}',
+		},
 		cbind: {
 		    hidden: '{!isCreate}',
 		    disabled: '{!isCreate}',
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-03-28 16:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-28 16:55 [pbs-devel] applied: [PATCH backup 1/2] ui: user edit: fix filtering out pam realm on user-add Thomas Lamprecht
2023-03-28 16:55 ` [pbs-devel] applied: [PATCH backup 2/2] ui: user edit: rework interaction of realm and view model Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal