[pve-devel] applied: [PATCH manager 3/4] ui: tfa: mask panels for not currently used types

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Apr 16 10:09:20 CEST 2019


On 4/11/19 11:32 AM, Wolfgang Bumiller wrote:
> Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
> ---

applied, but with quite a big followup changing the wizard card-masking to
card-disabling with a simple bind.

>  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 at 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();
> 





More information about the pve-devel mailing list