On 4/11/19 11:32 AM, Wolfgang Bumiller wrote:
> Signed-off-by: Wolfgang Bumiller <[email protected]>
> ---

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


_______________________________________________
pve-devel mailing list
[email protected]
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to