]>
Commit | Line | Data |
---|---|---|
efff7eab DC |
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 | }, | |
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', | |
2b9b6bc4 | 80 | uncheckedValue: 0, |
5b849276 DJ |
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 | }); |