gui: tfa configuration
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
a670b99db1
commit
3fffcb5d77
|
@ -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 \
|
||||||
|
|
|
@ -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']);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
Loading…
Reference in New Issue