]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/FirewallOptions.js
1 Ext
.define('PVE.FirewallOptions', {
2 extend
: 'Proxmox.grid.ObjectGrid',
3 alias
: ['widget.pveFirewallOptions'],
5 fwtype
: undefined, // 'dc', 'node' or 'vm'
9 initComponent: function() {
13 throw "missing base_url configuration";
16 if (me
.fwtype
=== 'dc' || me
.fwtype
=== 'node' || me
.fwtype
=== 'vm') {
17 if (me
.fwtype
=== 'node') {
21 throw "unknown firewall option type";
26 var add_boolean_row = function(name
, text
, defaultValue
) {
27 me
.add_boolean_row(name
, text
, { defaultValue
: defaultValue
});
29 var add_integer_row = function(name
, text
, minValue
, labelWidth
) {
30 me
.add_integer_row(name
, text
, {
33 labelWidth
: labelWidth
,
34 renderer: function(value
) {
35 if (value
=== undefined) {
36 return Proxmox
.Utils
.defaultText
;
44 var add_log_row = function(name
, labelWidth
) {
48 defaultValue
: 'nolog',
50 xtype
: 'proxmoxWindowEdit',
52 fieldDefaults
: { labelWidth
: labelWidth
|| 100 },
54 xtype
: 'pveFirewallLogLevels',
62 if (me
.fwtype
=== 'node') {
66 header
: gettext('Firewall'),
67 renderer
: Proxmox
.Utils
.format_boolean
,
69 xtype
: 'pveFirewallEnableEdit',
73 add_boolean_row('nosmurfs', gettext('SMURFS filter'), 1);
74 add_boolean_row('tcpflags', gettext('TCP flags filter'), 0);
75 add_boolean_row('ndp', 'NDP', 1);
76 add_integer_row('nf_conntrack_max', 'nf_conntrack_max', 32768, 120);
77 add_integer_row('nf_conntrack_tcp_timeout_established',
78 'nf_conntrack_tcp_timeout_established', 7875, 250);
79 add_log_row('log_level_in');
80 add_log_row('log_level_out');
81 add_log_row('tcp_flags_log_level', 120);
82 add_log_row('smurf_log_level');
83 } else if (me
.fwtype
=== 'vm') {
87 header
: gettext('Firewall'),
88 renderer
: Proxmox
.Utils
.format_boolean
,
90 xtype
: 'pveFirewallEnableEdit',
94 add_boolean_row('dhcp', 'DHCP', 1);
95 add_boolean_row('ndp', 'NDP', 1);
96 add_boolean_row('radv', gettext('Router Advertisement'), 0);
97 add_boolean_row('macfilter', gettext('MAC filter'), 1);
98 add_boolean_row('ipfilter', gettext('IP filter'), 0);
99 add_log_row('log_level_in');
100 add_log_row('log_level_out');
101 } else if (me
.fwtype
=== 'dc') {
102 add_boolean_row('enable', gettext('Firewall'), 0);
103 add_boolean_row('ebtables', 'ebtables', 1);
104 me
.rows
.log_ratelimit
= {
105 header
: gettext('Log rate limit'),
107 defaultValue
: gettext('Default') + ' (enable=1,rate1/second,burst=5)',
109 xtype
: 'pveFirewallLograteEdit',
110 defaultValue
: 'enable=1',
115 if (me
.fwtype
=== 'dc' || me
.fwtype
=== 'vm') {
116 me
.rows
.policy_in
= {
117 header
: gettext('Input Policy'),
119 defaultValue
: 'DROP',
121 xtype
: 'proxmoxWindowEdit',
122 subject
: gettext('Input Policy'),
124 xtype
: 'pveFirewallPolicySelector',
127 fieldLabel
: gettext('Input Policy'),
132 me
.rows
.policy_out
= {
133 header
: gettext('Output Policy'),
135 defaultValue
: 'ACCEPT',
137 xtype
: 'proxmoxWindowEdit',
138 subject
: gettext('Output Policy'),
140 xtype
: 'pveFirewallPolicySelector',
143 fieldLabel
: gettext('Output Policy'),
149 var edit_btn
= new Ext
.Button({
150 text
: gettext('Edit'),
152 handler: function() { me
.run_editor(); },
155 var set_button_status = function() {
156 var sm
= me
.getSelectionModel();
157 var rec
= sm
.getSelection()[0];
163 var rowdef
= me
.rows
[rec
.data
.key
];
164 edit_btn
.setDisabled(!rowdef
.editor
);
168 url
: "/api2/json" + me
.base_url
,
171 url
: '/api2/extjs/' + me
.base_url
,
174 itemdblclick
: me
.run_editor
,
175 selectionchange
: set_button_status
,
181 me
.on('activate', me
.rstore
.startUpdate
);
182 me
.on('destroy', me
.rstore
.stopUpdate
);
183 me
.on('deactivate', me
.rstore
.stopUpdate
);
188 Ext
.define('PVE.FirewallLogLevels', {
189 extend
: 'Proxmox.form.KVComboBox',
190 alias
: ['widget.pveFirewallLogLevels'],
193 fieldLabel
: gettext('Log level'),
195 comboItems
: [['nolog', 'nolog'], ['emerg', 'emerg'], ['alert', 'alert'],
196 ['crit', 'crit'], ['err', 'err'], ['warning', 'warning'],
197 ['notice', 'notice'], ['info', 'info'], ['debug', 'debug']],