[pbs-devel] [PATCH backup 4/4] gui: tfa configuration
Wolfgang Bumiller
w.bumiller at proxmox.com
Fri Jan 15 10:20:49 CET 2021
Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
---
www/Makefile | 1 +
www/SystemConfiguration.js | 26 +++++++++++
www/config/WebauthnView.js | 91 ++++++++++++++++++++++++++++++++++++++
3 files changed, 118 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..3e8df709
--- /dev/null
+++ b/www/config/WebauthnView.js
@@ -0,0 +1,91 @@
+Ext.define('PBS.WebauthnConfigView', {
+ extend: 'Proxmox.grid.ObjectGrid',
+ alias: ['widget.pbsWebauthnConfigView'],
+
+ initComponent: function() {
+ let me = this;
+
+ let run_editor = function() {
+ let win = Ext.create('PBS.WebauthnConfigEdit');
+ win.show();
+ };
+
+ Ext.apply(me, {
+ url: "/api2/json/config/access/tfa/webauthn",
+ cwidth1: 150,
+ interval: 1000,
+ run_editor: run_editor,
+ 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: run_editor,
+ },
+ ],
+ listeners: {
+ itemdblclick: run_editor,
+ },
+ });
+
+ me.callParent();
+
+ me.on('activate', me.rstore.startUpdate);
+ me.on('deactivate', me.rstore.stopUpdate);
+ me.on('destroy', me.rstore.stopUpdate);
+ },
+});
+
+Ext.define('PBS.WebauthnConfigEdit', {
+ extend: 'Proxmox.window.Edit',
+ alias: ['widget.pbsWebauthnConfigEdit'],
+
+ initComponent: function() {
+ let me = this;
+
+ me.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,
+ },
+ ];
+
+ Ext.applyIf(me, {
+ subject: gettext('DNS'),
+ url: "/api2/extjs/config/access/tfa/webauthn",
+ fieldDefaults: {
+ labelWidth: 120,
+ },
+ });
+
+ me.callParent();
+
+ me.load();
+ },
+});
--
2.20.1
More information about the pbs-devel
mailing list