]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: dc: add AuthEditOpenId panel
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 1 Jul 2021 12:25:02 +0000 (14:25 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 2 Jul 2021 12:10:19 +0000 (14:10 +0200)
for adding and editing openid realms, does not support tfa

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
www/manager6/Makefile
www/manager6/Utils.js
www/manager6/dc/AuthEditOpenId.js [new file with mode: 0644]

index 3e3fb6eb3c80638241a43f2978205a0c832aeafe..ecd6657ebbb41b9f76828645a1ef4f8c295ba549 100644 (file)
@@ -120,6 +120,7 @@ JSSRC=                                                      \
        dc/AuthEditBase.js                              \
        dc/AuthEditAD.js                                \
        dc/AuthEditLDAP.js                              \
+       dc/AuthEditOpenId.js                            \
        dc/AuthView.js                                  \
        dc/Backup.js                                    \
        dc/Cluster.js                                   \
index 705ca741d8d6e7cd260dada12ebb4f7999021690..8b061c59d4bb54e8fe2b528f4b2c4d46d9ecb973 100644 (file)
@@ -742,6 +742,12 @@ Ext.define('PVE.Utils', {
            add: true,
            tfa: true,
        },
+       openid: {
+           name: gettext('OpenID Server'),
+           ipanel: 'pveAuthOpenIDPanel',
+           add: true,
+           tfa: false,
+       },
        pam: {
            name: 'Linux PAM',
            ipanel: 'pveAuthBasePanel',
diff --git a/www/manager6/dc/AuthEditOpenId.js b/www/manager6/dc/AuthEditOpenId.js
new file mode 100644 (file)
index 0000000..f82122e
--- /dev/null
@@ -0,0 +1,77 @@
+Ext.define('PVE.panel.OpenIDInputPanel', {
+    extend: 'PVE.panel.AuthBase',
+    xtype: 'pveAuthOpenIDPanel',
+
+    initComponent: function() {
+       let me = this;
+
+       if (me.type !== 'openid') {
+           throw 'invalid type';
+       }
+
+       me.columnT = [
+           {
+               xtype: 'textfield',
+               name: 'issuer-url',
+               fieldLabel: gettext('Issuer URL'),
+               allowBlank: false,
+           },
+       ];
+
+       me.column1 = [
+           {
+               xtype: 'proxmoxtextfield',
+               fieldLabel: gettext('Client ID'),
+               name: 'client-id',
+               allowBlank: false,
+           },
+           {
+               xtype: 'proxmoxtextfield',
+               fieldLabel: gettext('Client Key'),
+               deleteEmpty: !me.isCreate,
+               name: 'client-key',
+           },
+       ];
+
+       me.column2 = [
+           {
+               xtype: 'proxmoxcheckbox',
+               fieldLabel: gettext('Autocreate Users'),
+               name: 'autocreate',
+               value: 0,
+               deleteEmpty: !me.isCreate,
+           },
+       ];
+
+       if (me.isCreate) {
+           me.column2.push({
+               xtype: 'proxmoxKVComboBox',
+               name: 'username-claim',
+               value: '__default__',
+               deleteEmpty: !me.isCreate,
+               fieldLabel: gettext('Username Claim'),
+               comboItems: [
+                   ['__default__', Proxmox.Utils.defaultText],
+                   ['subject', 'subject'],
+                   ['username', 'username'],
+                   ['email', 'email'],
+               ],
+           });
+       }
+
+       me.callParent();
+    },
+    onGetValues: function(values) {
+       let me = this;
+
+       if (!values.verify) {
+           if (!me.isCreate) {
+               Proxmox.Utils.assemble_field_data(values, { 'delete': 'verify' });
+           }
+           delete values.verify;
+       }
+
+       return me.callParent([values]);
+    },
+});
+