]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/AuthEditAD.js
ui: guest import: add warning for losing efi state
[pve-manager.git] / www / manager6 / dc / AuthEditAD.js
1 Ext.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 },
20 {
21 xtype: 'proxmoxcheckbox',
22 fieldLabel: gettext('Case-Sensitive'),
23 name: 'case-sensitive',
24 uncheckedValue: 0,
25 checked: true,
26 },
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 {
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,
64 listeners: {
65 change: function(field, newValue) {
66 let verifyCheckbox = field.nextSibling('proxmoxcheckbox[name=verify]');
67 if (newValue === 'ldap' || newValue === '__default__') {
68 verifyCheckbox.disable();
69 verifyCheckbox.setValue(0);
70 } else {
71 verifyCheckbox.enable();
72 }
73 },
74 },
75 },
76 {
77 xtype: 'proxmoxcheckbox',
78 fieldLabel: gettext('Verify Certificate'),
79 name: 'verify',
80 uncheckedValue: 0,
81 disabled: true,
82 checked: false,
83 autoEl: {
84 tag: 'div',
85 'data-qtip': gettext('Verify TLS certificate of the server'),
86 },
87 },
88 ];
89
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
105 me.callParent();
106 },
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
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
138 return me.callParent([values]);
139 },
140 });