[pbs-devel] [PATCH v2 backup 4/4] gui: tfa configuration
Wolfgang Bumiller
w.bumiller at proxmox.com
Fri Jan 15 11:06:18 CET 2021
Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
---
Changes to v1:
* removed initComponent functions in favor of inlined data
* fixed a wrong label copy-pasta
www/Makefile | 1 +
www/SystemConfiguration.js | 26 ++++++++++++
www/config/WebauthnView.js | 83 ++++++++++++++++++++++++++++++++++++++
3 files changed, 110 insertions(+)
create mode 100644 www/config/WebauthnView.js
diff --git a/www/Makefile b/www/Makefile
index 3d8d4fa1..c2d80c74 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -30,6 +30,7 @@ JSSRC= \
config/ACLView.js \
config/SyncView.js \
config/VerifyView.js \
+ config/WebauthnView.js \
window/ACLEdit.js \
window/AddTfaRecovery.js \
window/AddTotp.js \
diff --git a/www/SystemConfiguration.js b/www/SystemConfiguration.js
index d82396af..025e0273 100644
--- a/www/SystemConfiguration.js
+++ b/www/SystemConfiguration.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() {
@@ -55,6 +76,11 @@ Ext.define('PBS.SystemConfiguration', {
Ext.Array.forEach(networktime.query(), function(item) {
item.relayEvents(networktime, ['activate', 'deactivate', 'destroy']);
});
+
+ let authentication = me.getComponent('authentication');
+ Ext.Array.forEach(authentication.query(), function(item) {
+ item.relayEvents(authentication, ['activate', 'deactivate', 'destroy']);
+ });
},
});
diff --git a/www/config/WebauthnView.js b/www/config/WebauthnView.js
new file mode 100644
index 00000000..914abcdc
--- /dev/null
+++ b/www/config/WebauthnView.js
@@ -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,
+ },
+ ],
+});
--
2.20.1
More information about the pbs-devel
mailing list