A field for audiences for OpenId was added for users to supply Open ID audiences as a space-separated array of strings in their realm configuration. This array of audiences is then saved in the realm domains config file.
Signed-off-by: Alexander Abraham <a.abra...@proxmox.com> --- www/manager6/Parser.js | 27 +++++++++++++++++++++++++++ www/manager6/dc/AuthEditBase.js | 8 ++++++++ www/manager6/dc/AuthEditOpenId.js | 10 +++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/www/manager6/Parser.js b/www/manager6/Parser.js index 07eb9b17..4868777e 100644 --- a/www/manager6/Parser.js +++ b/www/manager6/Parser.js @@ -1,9 +1,36 @@ // Some configuration values are complex strings - so we need parsers/generators for them. Ext.define('PVE.Parser', { + statics: { // this class only contains static functions + checkKeys: function(obj, subject) { + var result = false; + for (const [key, _] of Object.entries(obj)) { + if (key === subject) { + result = true; + } else { + // Do nothing. + } + } + return result; + }, + parseOpenIdAudiences: function(audiences) { + var result = []; + var container = []; + for (var i = 0; i < audiences.length; i++) { + var current = audiences[i]; + if (current === ' ') { + result.push(container.join('')); + container = []; + } else { + container.push(current); + } + } + result.push(container.join('')); + return result; + }, printACME: function(value) { if (Ext.isArray(value.domains)) { value.domains = value.domains.join(';'); diff --git a/www/manager6/dc/AuthEditBase.js b/www/manager6/dc/AuthEditBase.js index e18fbc3b..0110e191 100644 --- a/www/manager6/dc/AuthEditBase.js +++ b/www/manager6/dc/AuthEditBase.js @@ -14,6 +14,14 @@ Ext.define('PVE.panel.AuthBase', { delete values.port; } + var audiences = []; + if (PVE.Parser.checkKeys(values, "audiences")) { + audiences = PVE.Parser.parseOpenIdAudiences(values.audiences); + console.log(audiences); + delete values.audiences; + values.audiences = audiences; + } + if (me.isCreate) { values.type = me.type; } diff --git a/www/manager6/dc/AuthEditOpenId.js b/www/manager6/dc/AuthEditOpenId.js index 544c0de5..0f4b07a9 100644 --- a/www/manager6/dc/AuthEditOpenId.js +++ b/www/manager6/dc/AuthEditOpenId.js @@ -111,6 +111,15 @@ Ext.define('PVE.panel.OpenIDInputPanel', { deleteEmpty: '{!isCreate}', }, }, + { + xtype: 'proxmoxtextfield', + name: 'audiences', + fieldLabel: gettext('Audiences'), + submitEmpty: false, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, ], initComponent: function() { @@ -123,4 +132,3 @@ Ext.define('PVE.panel.OpenIDInputPanel', { me.callParent(); }, }); - -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel