Signed-off-by: Wolfgang Bumiller <w.bumil...@proxmox.com> --- www/manager6/dc/TFAEdit.js | 23 ++++++++++++++++++++--- www/manager6/dc/UserView.js | 5 +++-- 2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/www/manager6/dc/TFAEdit.js b/www/manager6/dc/TFAEdit.js index f0f4e5f4..49c39b4e 100644 --- a/www/manager6/dc/TFAEdit.js +++ b/www/manager6/dc/TFAEdit.js @@ -167,12 +167,13 @@ Ext.define('PVE.window.TFAEdit', { }); me.down('#qrbox').getEl().appendChild(me.qrdiv); - viewmodel.set('has_tfa', me.hasTFA); - if (!me.hasTFA) { + viewmodel.set('has_tfa', me.tfa_type !== undefined); + if (!me.tfa_type) { this.randomizeSecret(); } else { me.down('#qrbox').setVisible(false); me.lookup('challenge').setVisible(false); + this.updatePanelMask(me.down('#totp-panel')); } if (Proxmox.UserName === 'root@pam') { @@ -185,10 +186,23 @@ Ext.define('PVE.window.TFAEdit', { tabchange: function(panel, newcard) { var viewmodel = this.getViewModel(); viewmodel.set('in_totp_tab', newcard.itemId === 'totp-panel'); + this.updatePanelMask(newcard); } } }, + updatePanelMask: function(card) { + var view = this.getView(); + var my_tfa_type = card.tfa_type; + if (view.tfa_type && view.tfa_type.length && view.tfa_type !== my_tfa_type) { + card.mask( + gettext('Another 2nd factor is currently configured.'), + ['pve-static-mask']); + } else { + card.unmask() + } + }, + applySettings: function() { var me = this; var values = me.lookup('totp_form').getValues(); @@ -305,6 +319,7 @@ Ext.define('PVE.window.TFAEdit', { xtype: 'panel', title: 'TOTP', itemId: 'totp-panel', + tfa_type: 'totp', border: false, layout: { type: 'vbox', @@ -407,6 +422,7 @@ Ext.define('PVE.window.TFAEdit', { title: 'U2F', itemId: 'u2f-panel', reference: 'u2f_panel', + tfa_type: 'u2f', border: false, padding: '5 5', layout: { @@ -457,7 +473,8 @@ Ext.define('PVE.window.TFAEdit', { text: gettext('Register U2F Device'), handler: 'startU2FRegistration', bind: { - hidden: '{in_totp_tab}' + hidden: '{in_totp_tab}', + disabled: '{has_tfa}' } }, { diff --git a/www/manager6/dc/UserView.js b/www/manager6/dc/UserView.js index e91486ab..8918fb2b 100644 --- a/www/manager6/dc/UserView.js +++ b/www/manager6/dc/UserView.js @@ -85,9 +85,10 @@ Ext.define('PVE.dc.UserView', { selModel: sm, handler: function(btn, event, rec) { var d = rec.data; + var tfa_type = PVE.Parser.parseTfaType(d.keys); var win = Ext.create('PVE.window.TFAEdit',{ - hasTFA: d.keys != undefined && d.keys.length, - userid: d.userid + tfa_type: tfa_type, + userid: d.userid }); win.on('destroy', reload); win.show(); -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel