[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