]> git.proxmox.com Git - pve-manager.git/blob - www/manager/dc/AuthEdit.js
imported from svn 'pve-manager/pve2'
[pve-manager.git] / www / manager / dc / AuthEdit.js
1 Ext.define('PVE.dc.AuthEdit', {
2 extend: 'PVE.window.Edit',
3 alias: ['widget.pveDcAuthEdit'],
4
5 initComponent : function() {
6 var me = this;
7
8 me.create = !me.realm;
9
10 var url;
11 var method;
12 var serverlist;
13
14 if (me.create) {
15 url = '/api2/extjs/access/domains';
16 method = 'POST';
17 } else {
18 url = '/api2/extjs/access/domains/' + me.realm;
19 method = 'PUT';
20 }
21
22 var column1 = [
23 {
24 xtype: me.create ? 'textfield' : 'displayfield',
25 name: 'realm',
26 fieldLabel: 'Realm',
27 value: me.realm,
28 emptyText: 'company.net',
29 allowBlank: false
30 },
31 {
32 xtype: 'textfield',
33 name: 'base_dn',
34 fieldLabel: 'Base Domain Name',
35 emptyText: 'CN=Users,DC=Company,DC=net',
36 allowBlank: false
37 },
38 {
39 xtype: 'textfield',
40 name: 'user_attr',
41 emptyText: 'uid / sAMAccountName',
42 fieldLabel: 'User Attribute Name',
43 allowBlank: false
44 },
45 {
46 xtype: 'textfield',
47 name: 'comment',
48 fieldLabel: 'Comment',
49 emptyText: 'Enterprise Directory Server',
50 allowBlank: false
51 },
52 {
53 xtype: 'pvecheckbox',
54 fieldLabel: 'Default Realm',
55 name: 'default',
56 uncheckedValue: 0
57 }
58 ];
59
60 var column2 = [
61 Ext.create('PVE.form.KVComboBox', {
62 fieldLabel: 'Server Type',
63 name: 'type',
64 data: [
65 ['ad', 'Active Directory Server'],
66 ['ldap', 'LDAP/LDAPs Server']
67 ]
68 }),
69 {
70 xtype: 'textfield',
71 fieldLabel: 'Server Address',
72 name: 'servers',
73 emptyText: '192.168.2.23,ldap.company.net',
74 listeners: {
75 change: function(combo, newValue){
76 serverlist = newValue.split(',');
77 }
78 },
79 submitValue: false,
80 allowBlank: false
81 },
82 {
83 xtype: 'numberfield',
84 name: 'port',
85 fieldLabel: 'Server Port',
86 minValue: 1,
87 maxValue: 65535,
88 allowBlank: false
89 },
90 {
91 xtype: 'pvecheckbox',
92 fieldLabel: 'SSL',
93 name: 'secure',
94 uncheckedValue: 0
95 }
96 ];
97
98 var ipanel = Ext.create('PVE.panel.InputPanel', {
99 column1: column1,
100 column2: column2,
101 onGetValues: function(values) {
102 var i;
103 for (i=0; i<serverlist.length; i++) {
104 var num = i + 1;
105 values['server' + num.toString()] = serverlist[i];
106 }
107 return values;
108 }
109 });
110
111 Ext.applyIf(me, {
112 title: me.create ? "Create Auth" : "Edit Auth '" + me.realm + "'",
113 url: url,
114 method: method,
115 items: [ ipanel ]
116 });
117
118 me.callParent();
119
120 if (!me.create) {
121 me.load({
122 success: function(response, options) {
123 var data = response.result.data;
124 var count = 1;
125 while (data['server' + count.toString()]) {
126 if (data.servers) {
127 data.servers += ',';
128 }
129 data.servers += data['server' + count.toString()];
130 count++;
131 }
132 me.setValues(data);
133 }
134 });
135 }
136 }
137 });