gui: tfa configuration

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2021-01-15 11:06:18 +01:00 committed by Thomas Lamprecht
parent a670b99db1
commit 3fffcb5d77
3 changed files with 110 additions and 0 deletions

View File

@ -30,6 +30,7 @@ JSSRC= \
config/ACLView.js \ config/ACLView.js \
config/SyncView.js \ config/SyncView.js \
config/VerifyView.js \ config/VerifyView.js \
config/WebauthnView.js \
window/ACLEdit.js \ window/ACLEdit.js \
window/AddTfaRecovery.js \ window/AddTfaRecovery.js \
window/AddTotp.js \ window/AddTotp.js \

View File

@ -44,6 +44,27 @@ Ext.define('PBS.SystemConfiguration', {
}, },
], ],
}, },
{
title: gettext('Authentication'),
itemId: 'authentication',
xtype: 'panel',
layout: {
type: 'vbox',
align: 'stretch',
multi: true,
},
defaults: {
collapsible: true,
animCollapse: false,
margin: '10 10 0 10',
},
items: [
{
title: gettext('Webauthn'),
xtype: 'pbsWebauthnConfigView',
},
],
},
], ],
initComponent: function() { initComponent: function() {
@ -55,6 +76,11 @@ Ext.define('PBS.SystemConfiguration', {
Ext.Array.forEach(networktime.query(), function(item) { Ext.Array.forEach(networktime.query(), function(item) {
item.relayEvents(networktime, ['activate', 'deactivate', 'destroy']); item.relayEvents(networktime, ['activate', 'deactivate', 'destroy']);
}); });
let authentication = me.getComponent('authentication');
Ext.Array.forEach(authentication.query(), function(item) {
item.relayEvents(authentication, ['activate', 'deactivate', 'destroy']);
});
}, },
}); });

View File

@ -0,0 +1,83 @@
Ext.define('PBS.WebauthnConfigView', {
extend: 'Proxmox.grid.ObjectGrid',
alias: ['widget.pbsWebauthnConfigView'],
url: "/api2/json/config/access/tfa/webauthn",
cwidth1: 150,
interval: 1000,
rows: {
rp: {
header: gettext('Relying Party'),
required: true,
},
origin: {
header: gettext('Origin'),
required: true,
},
id: {
header: gettext('Id'),
required: true,
},
},
tbar: [
{
text: gettext("Edit"),
handler: 'runEditor',
},
],
controller: {
xclass: 'Ext.app.ViewController',
runEditor: function() {
let win = Ext.create('PBS.WebauthnConfigEdit');
win.show();
},
startStore: function() { this.getView().getStore().rstore.startUpdate(); },
stopStore: function() { this.getView().getStore().rstore.stopUpdate(); },
},
listeners: {
itemdblclick: 'runEditor',
activate: 'startStore',
deactivate: 'stopStore',
destroy: 'stopStore',
},
});
Ext.define('PBS.WebauthnConfigEdit', {
extend: 'Proxmox.window.Edit',
alias: ['widget.pbsWebauthnConfigEdit'],
subject: gettext('Webauthn'),
url: "/api2/extjs/config/access/tfa/webauthn",
autoLoad: true,
fieldDefaults: {
labelWidth: 120,
},
items: [
{
xtype: 'textfield',
fieldLabel: gettext('Relying Party'),
name: 'rp',
allowBlank: false,
},
{
xtype: 'textfield',
fieldLabel: gettext('Origin'),
name: 'origin',
allowBlank: false,
},
{
xtype: 'textfield',
fieldLabel: gettext('id'),
name: 'id',
allowBlank: false,
},
],
});