]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/AuthEditAD.js
ui: ldap: ad: support 'mode' paramter, replacing 'secure'
[pve-manager.git] / www / manager6 / dc / AuthEditAD.js
CommitLineData
efff7eab
DC
1Ext.define('PVE.panel.ADInputPanel', {
2 extend: 'PVE.panel.AuthBase',
3 xtype: 'pveAuthADPanel',
4
5 initComponent: function() {
6 let me = this;
7
8 if (me.type !== 'ad') {
9 throw 'invalid type';
10 }
11
12 me.column1 = [
13 {
14 xtype: 'textfield',
15 name: 'domain',
16 fieldLabel: gettext('Domain'),
17 emptyText: 'company.net',
18 allowBlank: false,
19 },
c34c5418
TL
20 {
21 xtype: 'proxmoxcheckbox',
22 fieldLabel: gettext('Case-Sensitive'),
23 name: 'case-sensitive',
24 uncheckedValue: 0,
25 checked: true,
26 },
efff7eab
DC
27 ];
28
29 me.column2 = [
30 {
31 xtype: 'textfield',
32 fieldLabel: gettext('Server'),
33 name: 'server1',
34 allowBlank: false,
35 },
36 {
37 xtype: 'proxmoxtextfield',
38 fieldLabel: gettext('Fallback Server'),
39 deleteEmpty: !me.isCreate,
40 name: 'server2',
41 },
42 {
43 xtype: 'proxmoxintegerfield',
44 name: 'port',
45 fieldLabel: gettext('Port'),
46 minValue: 1,
47 maxValue: 65535,
48 emptyText: gettext('Default'),
49 submitEmptyText: false,
50 },
51 {
09a2f334
LW
52 xtype: 'proxmoxKVComboBox',
53 name: 'mode',
54 fieldLabel: gettext('Mode'),
55 editable: false,
56 comboItems: [
57 ['__default__', Proxmox.Utils.defaultText + ' (LDAP)'],
58 ['ldap', 'LDAP'],
59 ['ldap+starttls', 'STARTTLS'],
60 ['ldaps', 'LDAPS'],
61 ],
62 value: '__default__',
63 deleteEmpty: !me.isCreate,
5b849276
DJ
64 listeners: {
65 change: function(field, newValue) {
66 let verifyCheckbox = field.nextSibling('proxmoxcheckbox[name=verify]');
09a2f334 67 if (newValue === 'ldap' || newValue === '__default__') {
5b849276
DJ
68 verifyCheckbox.disable();
69 verifyCheckbox.setValue(0);
09a2f334
LW
70 } else {
71 verifyCheckbox.enable();
5b849276
DJ
72 }
73 },
74 },
75 },
76 {
77 xtype: 'proxmoxcheckbox',
78 fieldLabel: gettext('Verify Certificate'),
79 name: 'verify',
80 unceckedValue: 0,
81 disabled: true,
82 checked: false,
83 autoEl: {
84 tag: 'div',
85 'data-qtip': gettext('Verify SSL certificate of the server'),
86 },
efff7eab
DC
87 },
88 ];
89
b9d23c87
CH
90 me.advancedItems = [
91 {
92 xtype: 'proxmoxcheckbox',
93 fieldLabel: gettext('Check connection'),
94 name: 'check-connection',
95 uncheckedValue: 0,
96 checked: true,
97 autoEl: {
98 tag: 'div',
99 'data-qtip':
100 gettext('Verify connection parameters and bind credentials on save'),
101 },
102 },
103 ];
104
efff7eab
DC
105 me.callParent();
106 },
5b849276
DJ
107 onGetValues: function(values) {
108 let me = this;
109
110 if (!values.verify) {
111 if (!me.isCreate) {
112 Proxmox.Utils.assemble_field_data(values, { 'delete': 'verify' });
113 }
114 delete values.verify;
115 }
116
09a2f334
LW
117 if (!me.isCreate) {
118 // Delete old `secure` parameter. It has been deprecated in favor to the
119 // `mode` parameter. Migration happens automatically in `onSetValues`.
120 Proxmox.Utils.assemble_field_data(values, { 'delete': 'secure' });
121 }
122
123
124 return me.callParent([values]);
125 },
126
127 onSetValues(values) {
128 let me = this;
129
130 if (values.secure !== undefined && !values.mode) {
131 // If `secure` is set, use it to determine the correct setting for `mode`
132 // `secure` is later deleted by `onSetValues` .
133 // In case *both* are set, we simply ignore `secure` and use
134 // whatever `mode` is set to.
135 values.mode = values.secure ? 'ldaps' : 'ldap';
136 }
137
5b849276
DJ
138 return me.callParent([values]);
139 },
efff7eab 140});