]>
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')
139 xtype
: 'proxmoxtextfield',
141 deleteEmpty
: me
.create
? false : true,
143 fieldLabel
: gettext('Group objectclass')
150 fieldLabel
: gettext('Comment'),
160 Ext
.define('PMG.LDAPEdit', {
161 extend
: 'Proxmox.window.Edit',
162 alias
: 'widget.pmgLDAPEdit',
164 subject
: 'LDAP Profile',
167 initComponent : function() {
170 me
.create
= me
.profileId
? false : true;
173 me
.url
= '/api2/extjs/config/ldap';
176 me
.url
= '/api2/extjs/config/ldap/' + me
.profileId
+ '/config';
180 var ipanel
= Ext
.create('PMG.LDAPInputPanel', {
182 profileId
: me
.profileId
185 me
.items
= [ ipanel
];
195 success: function(response
, options
) {
196 var values
= response
.result
.data
;
198 values
.enable
= values
.disable
? 0 : 1;
199 ipanel
.setValues(values
);
206 Ext
.define('PMG.LDAPConfig', {
207 extend
: 'Ext.grid.GridPanel',
208 alias
: ['widget.pmgLDAPConfig'],
210 initComponent : function() {
213 me
.store
= new Ext
.data
.Store({
214 model
: 'pmg-ldap-config',
221 var reload = function() {
225 me
.selModel
= Ext
.create('Ext.selection.RowModel', {});
227 var remove_btn
= Ext
.createWidget('proxmoxStdRemoveButton', {
228 selModel
: me
.selModel
,
229 baseurl
: '/config/ldap',
234 var sync_btn
= Ext
.createWidget('proxmoxButton', {
235 text
: gettext('Synchronize'),
236 selModel
: me
.selModel
,
237 enableFn: function(rec
) {
238 return !rec
.data
.disable
;
241 handler: function(btn
, event
, rec
) {
242 Proxmox
.Utils
.API2Request({
243 url
: '/config/ldap/' + rec
.data
.profile
+ '/sync',
247 failure: function (response
, opts
) {
248 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
254 var run_editor = function() {
255 var rec
= me
.selModel
.getSelection()[0];
260 var win
= Ext
.createWidget('pmgLDAPEdit', {
261 profileId
: rec
.data
.profile
264 win
.on('destroy', reload
);
270 xtype
: 'proxmoxButton',
271 text
: gettext('Edit'),
273 selModel
: me
.selModel
,
277 text
: gettext('Create'),
278 handler: function() {
279 var win
= Ext
.createWidget('pmgLDAPEdit', {});
280 win
.on('destroy', reload
);
287 Proxmox
.Utils
.monStoreErrors(me
, me
.store
);
293 header
: gettext('Profile Name'),
299 header
: gettext('Protocol'),
302 renderer
: PMG
.Utils
.format_ldap_protocol
305 header
: gettext('Server'),
307 dataIndex
: 'server1',
308 renderer: function(value
, metaData
, rec
) {
309 if (rec
.data
.server2
) {
310 return value
+ '<br>' + rec
.data
.server2
;
316 header
: gettext('Enabled'),
319 dataIndex
: 'disable',
320 renderer
: Proxmox
.Utils
.format_neg_boolean
323 header
: gettext('Comment'),
325 renderer
: Ext
.String
.htmlEncode
,
326 dataIndex
: 'comment',
330 header
: gettext('Accounts'),
336 header
: gettext('Addresses'),
342 header
: gettext('Groups'),
349 itemdblclick
: run_editor
,