]>
git.proxmox.com Git - pmg-gui.git/blob - js/LDAPConfig.js
1 Ext
.define('pmg-ldap-config', {
2 extend
: 'Ext.data.Model',
3 fields
: [ 'section', 'server1', 'server2', 'comment',
4 'mode', 'binddn', 'bindpw', 'basedn', 'groupbasedn',
5 'filter', 'accountattr', 'mailattr',
6 { name
: 'port', type
: 'integer' },
7 { name
: 'gcount', type
: 'integer' },
8 { name
: 'mcount', type
: 'integer' },
9 { name
: 'ucount', type
: 'integer' },
10 { name
: 'disable', type
: 'boolean' }
14 url
: "/api2/json/config/ldap"
19 Ext
.define('PMG.LDAPInputPanel', {
20 extend
: 'Proxmox.panel.InputPanel',
21 alias
: 'widget.pmgLDAPInputPanel',
25 onGetValues: function(values
) {
28 values
.disable
= values
.enable
? 0 : 1;
34 initComponent : function() {
39 xtype
: me
.sectionId
? 'displayfield' : 'textfield',
40 fieldLabel
: gettext('Profile Name'),
41 value
: me
.sectionId
|| '',
47 xtype
: 'proxmoxKVComboBox',
50 ['ldap', PMG
.Utils
.format_ldap_protocol('ldap')],
51 ['ldaps', PMG
.Utils
.format_ldap_protocol('ldaps')]
54 fieldLabel
: gettext('Protocol')
58 fieldLabel
: gettext('Server'),
64 xtype
: 'proxmoxtextfield',
65 fieldLabel
: gettext('Server'),
67 deleteEmpty
: me
.create
? false : true,
72 xtype
: 'proxmoxintegerfield',
74 emptyText
: gettext('Default'),
75 deleteEmpty
: me
.create
? false : true,
78 fieldLabel
: gettext('Port'),
84 fieldLabel
: gettext('User name')
88 inputType
: 'password',
91 fieldLabel
: gettext('Password')
97 xtype
: 'proxmoxcheckbox',
101 fieldLabel
: gettext('Enable')
104 xtype
: 'proxmoxtextfield',
106 deleteEmpty
: me
.create
? false : true,
108 fieldLabel
: gettext('Base DN')
111 xtype
: 'proxmoxtextfield',
113 deleteEmpty
: me
.create
? false : true,
115 fieldLabel
: gettext('Base DN for Groups')
118 xtype
: 'proxmoxtextfield',
120 deleteEmpty
: me
.create
? false : true,
122 fieldLabel
: gettext('EMail attribute name(s)')
125 xtype
: 'proxmoxtextfield',
127 deleteEmpty
: me
.create
? false : true,
129 fieldLabel
: gettext('Account attribute name')
132 xtype
: 'proxmoxtextfield',
134 deleteEmpty
: me
.create
? false : true,
136 fieldLabel
: gettext('LDAP filter')
143 fieldLabel
: gettext('Comment'),
153 Ext
.define('PMG.LDAPEdit', {
154 extend
: 'Proxmox.window.Edit',
155 alias
: 'widget.pmgLDAPEdit',
157 subject
: 'LDAP Profile',
160 initComponent : function() {
163 me
.create
= me
.sectionId
? false : true;
166 me
.url
= '/api2/extjs/config/ldap';
169 me
.url
= '/api2/extjs/config/ldap/' + me
.sectionId
;
173 var ipanel
= Ext
.create('PMG.LDAPInputPanel', {
175 sectionId
: me
.sectionId
178 me
.items
= [ ipanel
];
188 success: function(response
, options
) {
189 var values
= response
.result
.data
;
191 values
.enable
= values
.disable
? 0 : 1;
192 ipanel
.setValues(values
);
199 Ext
.define('PMG.LDAPConfig', {
200 extend
: 'Ext.grid.GridPanel',
201 alias
: ['widget.pmgLDAPConfig'],
203 initComponent : function() {
206 me
.store
= new Ext
.data
.Store({
207 model
: 'pmg-ldap-config',
214 var reload = function() {
218 me
.selModel
= Ext
.create('Ext.selection.RowModel', {});
220 var remove_btn
= Ext
.createWidget('proxmoxStdRemoveButton', {
221 selModel
: me
.selModel
,
222 baseurl
: '/config/ldap',
227 var sync_btn
= Ext
.createWidget('proxmoxButton', {
228 text
: gettext('Synchronize'),
229 selModel
: me
.selModel
,
231 handler: function(btn
, event
, rec
) {
232 Proxmox
.Utils
.API2Request({
233 url
: '/config/ldap/' + rec
.data
.section
,
237 failure: function (response
, opts
) {
238 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
244 var run_editor = function() {
245 var rec
= me
.selModel
.getSelection()[0];
250 var win
= Ext
.createWidget('pmgLDAPEdit', {
251 sectionId
: rec
.data
.section
254 win
.on('destroy', reload
);
260 xtype
: 'proxmoxButton',
261 text
: gettext('Edit'),
263 selModel
: me
.selModel
,
267 text
: gettext('Create'),
268 handler: function() {
269 var win
= Ext
.createWidget('pmgLDAPEdit', {});
270 win
.on('destroy', reload
);
277 Proxmox
.Utils
.monStoreErrors(me
, me
.store
);
283 header
: gettext('Profile Name'),
289 header
: gettext('Protocol'),
292 renderer
: PMG
.Utils
.format_ldap_protocol
295 header
: gettext('Server'),
297 dataIndex
: 'server1',
298 renderer: function(value
, metaData
, rec
) {
299 if (rec
.data
.server2
) {
300 return value
+ '<br>' + rec
.data
.server2
;
306 header
: gettext('Enabled'),
309 dataIndex
: 'disable',
310 renderer
: Proxmox
.Utils
.format_neg_boolean
313 header
: gettext('Comment'),
315 renderer
: Ext
.String
.htmlEncode
,
316 dataIndex
: 'comment',
320 header
: gettext('Accounts'),
326 header
: gettext('Addresses'),
332 header
: gettext('Groups'),
339 itemdblclick
: run_editor
,