oath: add 'step' and 'digits' options

This commit is contained in:
Dietmar Maurer 2014-07-23 07:26:30 +02:00
parent 991eb97568
commit 9c3952972e

View File

@ -133,6 +133,8 @@ Ext.define('PVE.dc.AuthEdit', {
if (!me.rendered) { if (!me.rendered) {
return; return;
} }
me.down('field[name=oath_step]').setVisible(value === 'oath');
me.down('field[name=oath_digits]').setVisible(value === 'oath');
me.down('field[name=yubico_api_id]').setVisible(value === 'yubico'); me.down('field[name=yubico_api_id]').setVisible(value === 'yubico');
me.down('field[name=yubico_api_key]').setVisible(value === 'yubico'); me.down('field[name=yubico_api_key]').setVisible(value === 'yubico');
me.down('field[name=yubico_url]').setVisible(value === 'yubico'); me.down('field[name=yubico_url]').setVisible(value === 'yubico');
@ -140,6 +142,35 @@ Ext.define('PVE.dc.AuthEdit', {
} }
}); });
column2.push({
xtype: 'numberfield',
name: 'oath_step',
value: '',
minValue: 10,
step: 1,
allowDecimals: false,
allowBlank: true,
emptyText: PVE.Utils.defaultText + ' (30)',
submitEmptyText: false,
hidden: true,
fieldLabel: 'OATH time step'
});
column2.push({
xtype: 'numberfield',
name: 'oath_digits',
value: '',
minValue: 6,
maxValue: 8,
step: 1,
allowDecimals: false,
allowBlank: true,
emptyText: PVE.Utils.defaultText + ' (6)',
submitEmptyText: false,
hidden: true,
fieldLabel: 'OATH password length'
});
column2.push({ column2.push({
xtype: 'textfield', xtype: 'textfield',
name: 'yubico_api_id', name: 'yubico_api_id',
@ -183,6 +214,12 @@ Ext.define('PVE.dc.AuthEdit', {
if (values.tfa === 'oath') { if (values.tfa === 'oath') {
values.tfa = "type=oath"; values.tfa = "type=oath";
if (values.oath_step) {
values.tfa += ",step=" + values.oath_step;
}
if (values.oath_digits) {
values.tfa += ",digits=" + values.oath_digits;
}
} else if (values.tfa === 'yubico') { } else if (values.tfa === 'yubico') {
values.tfa = "type=yubico"; values.tfa = "type=yubico";
values.tfa += ",id=" + values.yubico_api_id; values.tfa += ",id=" + values.yubico_api_id;
@ -194,6 +231,8 @@ Ext.define('PVE.dc.AuthEdit', {
delete values.tfa; delete values.tfa;
} }
delete values.oath_step;
delete values.oath_digits;
delete values.yubico_api_id; delete values.yubico_api_id;
delete values.yubico_api_key; delete values.yubico_api_key;
delete values.yubico_url; delete values.yubico_url;
@ -230,6 +269,9 @@ Ext.define('PVE.dc.AuthEdit', {
data.yubico_api_key = tfacfg.key; data.yubico_api_key = tfacfg.key;
data.yubico_api_id = tfacfg.id; data.yubico_api_id = tfacfg.id;
data.yubico_url = tfacfg.url; data.yubico_url = tfacfg.url;
} else if (tfacfg.type === 'oath') {
data.oath_step = tfacfg.step;
data.oath_digits = tfacfg.digits;
} }
} }