mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-05-28 12:31:16 +00:00
window: add Active Directory auth panel
As AD realms are mostly just LDAP, reuse the LDAP panel and just show/hide some elements based on the type. Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
This commit is contained in:
parent
f60fe4ad99
commit
4aff870f6c
@ -95,6 +95,7 @@ JSSRC= \
|
||||
window/AuthEditBase.js \
|
||||
window/AuthEditOpenId.js \
|
||||
window/AuthEditLDAP.js \
|
||||
window/AuthEditAD.js \
|
||||
window/TfaWindow.js \
|
||||
window/AddTfaRecovery.js \
|
||||
window/AddTotp.js \
|
||||
|
@ -29,6 +29,16 @@ Ext.define('Proxmox.Schema', { // a singleton
|
||||
pwchange: false,
|
||||
sync: true,
|
||||
},
|
||||
ad: {
|
||||
name: gettext('Active Directory Server'),
|
||||
ipanel: 'pmxAuthADPanel',
|
||||
syncipanel: 'pmxAuthADSyncPanel',
|
||||
add: true,
|
||||
edit: true,
|
||||
tfa: true,
|
||||
pwchange: false,
|
||||
sync: true,
|
||||
},
|
||||
},
|
||||
// to add or change existing for product specific ones
|
||||
overrideAuthDomains: function(extra) {
|
||||
|
14
src/window/AuthEditAD.js
Normal file
14
src/window/AuthEditAD.js
Normal file
@ -0,0 +1,14 @@
|
||||
Ext.define('Proxmox.panel.ADInputPanel', {
|
||||
extend: 'Proxmox.panel.LDAPInputPanel',
|
||||
xtype: 'pmxAuthADPanel',
|
||||
|
||||
type: 'ad',
|
||||
onlineHelp: 'user-realms-ad',
|
||||
});
|
||||
|
||||
Ext.define('Proxmox.panel.ADSyncInputPanel', {
|
||||
extend: 'Proxmox.panel.LDAPSyncInputPanel',
|
||||
xtype: 'pmxAuthADSyncPanel',
|
||||
|
||||
type: 'ad',
|
||||
});
|
@ -64,6 +64,12 @@ Ext.define('Proxmox.panel.LDAPInputPanel', {
|
||||
return values;
|
||||
},
|
||||
|
||||
cbindData: function(config) {
|
||||
return {
|
||||
isLdap: this.type === 'ldap',
|
||||
isAd: this.type === 'ad',
|
||||
};
|
||||
},
|
||||
|
||||
column1: [
|
||||
{
|
||||
@ -80,15 +86,21 @@ Ext.define('Proxmox.panel.LDAPInputPanel', {
|
||||
xtype: 'proxmoxtextfield',
|
||||
fieldLabel: gettext('Base Domain Name'),
|
||||
name: 'base-dn',
|
||||
allowBlank: false,
|
||||
emptyText: 'cn=Users,dc=company,dc=net',
|
||||
cbind: {
|
||||
hidden: '{!isLdap}',
|
||||
allowBlank: '{!isLdap}',
|
||||
},
|
||||
},
|
||||
{
|
||||
xtype: 'proxmoxtextfield',
|
||||
fieldLabel: gettext('User Attribute Name'),
|
||||
name: 'user-attr',
|
||||
allowBlank: false,
|
||||
emptyText: 'uid / sAMAccountName',
|
||||
cbind: {
|
||||
hidden: '{!isLdap}',
|
||||
allowBlank: '{!isLdap}',
|
||||
},
|
||||
},
|
||||
{
|
||||
xtype: 'proxmoxcheckbox',
|
||||
@ -103,7 +115,14 @@ Ext.define('Proxmox.panel.LDAPInputPanel', {
|
||||
fieldLabel: gettext('Bind Domain Name'),
|
||||
name: 'bind-dn',
|
||||
allowBlank: false,
|
||||
emptyText: 'cn=user,dc=company,dc=net',
|
||||
cbind: {
|
||||
emptyText: get => get('isAd') ? 'user@company.net' : 'cn=user,dc=company,dc=net',
|
||||
autoEl: get => get('isAd') ? {
|
||||
tag: 'div',
|
||||
'data-qtip':
|
||||
gettext('LDAP DN syntax can be used as well, e.g. cn=user,dc=company,dc=net'),
|
||||
} : {},
|
||||
},
|
||||
bind: {
|
||||
disabled: "{anonymous_search}",
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user