]>
git.proxmox.com Git - pmg-gui.git/blob - js/LDAPConfig.js
1 Ext
.define('pmg-ldap-config', {
2 extend
: 'Ext.data.Model',
3 fields
: [ 'profile', '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
.profileId
? 'displayfield' : 'textfield',
40 fieldLabel
: gettext('Profile Name'),
41 value
: me
.profileId
|| '',
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
.profileId
? false : true;
166 me
.url
= '/api2/extjs/config/ldap';
169 me
.url
= '/api2/extjs/config/ldap/' + me
.profileId
+ '/config';
173 var ipanel
= Ext
.create('PMG.LDAPInputPanel', {
175 profileId
: me
.profileId
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
,
230 enableFn: function(rec
) {
231 return !rec
.data
.disable
;
234 handler: function(btn
, event
, rec
) {
235 Proxmox
.Utils
.API2Request({
236 url
: '/config/ldap/' + rec
.data
.profile
+ '/sync',
240 failure: function (response
, opts
) {
241 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
247 var run_editor = function() {
248 var rec
= me
.selModel
.getSelection()[0];
253 var win
= Ext
.createWidget('pmgLDAPEdit', {
254 profileId
: rec
.data
.profile
257 win
.on('destroy', reload
);
263 xtype
: 'proxmoxButton',
264 text
: gettext('Edit'),
266 selModel
: me
.selModel
,
270 text
: gettext('Create'),
271 handler: function() {
272 var win
= Ext
.createWidget('pmgLDAPEdit', {});
273 win
.on('destroy', reload
);
280 Proxmox
.Utils
.monStoreErrors(me
, me
.store
);
286 header
: gettext('Profile Name'),
292 header
: gettext('Protocol'),
295 renderer
: PMG
.Utils
.format_ldap_protocol
298 header
: gettext('Server'),
300 dataIndex
: 'server1',
301 renderer: function(value
, metaData
, rec
) {
302 if (rec
.data
.server2
) {
303 return value
+ '<br>' + rec
.data
.server2
;
309 header
: gettext('Enabled'),
312 dataIndex
: 'disable',
313 renderer
: Proxmox
.Utils
.format_neg_boolean
316 header
: gettext('Comment'),
318 renderer
: Ext
.String
.htmlEncode
,
319 dataIndex
: 'comment',
323 header
: gettext('Accounts'),
329 header
: gettext('Addresses'),
335 header
: gettext('Groups'),
342 itemdblclick
: run_editor
,