From 93d9d427d22f6d9d15e7edaaada2d6850686a060 Mon Sep 17 00:00:00 2001 From: robiscool Date: Tue, 10 May 2011 07:50:22 -0700 Subject: snort-dev, add interfaces edit tab, update code --- config/snort-dev/base_file.php | 131 ++++++ config/snort-dev/javascript/snort_globalsend.js | 22 +- config/snort-dev/snort_alerts.php | 5 +- config/snort-dev/snort_blocked.php | 5 +- config/snort-dev/snort_head.inc | 101 +++-- config/snort-dev/snort_headbase.inc | 10 +- config/snort-dev/snort_interfaces.php | 38 +- config/snort-dev/snort_interfaces_edit.php | 455 +++++++++++++++++++++ config/snort-dev/snort_interfaces_global.php | 13 +- .../snort-dev/snort_interfaces_suppress_edit.php | 13 +- .../snort-dev/snort_interfaces_whitelist_edit.php | 11 +- config/snort-dev/snort_json_post.php | 81 +++- config/snort-dev/snort_new.inc | 9 +- config/snort-dev/testing.php | 58 +-- config/snort/snort_interfaces_edit.php | 1 - 15 files changed, 812 insertions(+), 141 deletions(-) create mode 100644 config/snort-dev/base_file.php create mode 100644 config/snort-dev/snort_interfaces_edit.php (limited to 'config') diff --git a/config/snort-dev/base_file.php b/config/snort-dev/base_file.php new file mode 100644 index 00000000..003c0b63 --- /dev/null +++ b/config/snort-dev/base_file.php @@ -0,0 +1,131 @@ +. + Copyright (C) 2008-2009 Robert Zelaya. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +require_once("guiconfig.inc"); +require_once("/usr/local/pkg/snort/snort_new.inc"); +require_once("/usr/local/pkg/snort/snort_gui.inc"); + +// set page vars + +$uuid = $_GET['uuid']; +if (isset($_POST['uuid'])) +$uuid = $_POST['uuid']; + +if ($uuid == '') { + echo 'error: no uuid'; + exit(0); +} + + +$a_list = snortSql_fetchAllSettings('snortDBrules', 'Snortrules', 'uuid', $uuid); + + + + + + $pgtitle = "Services: Snort: Interface Edit:"; + include("/usr/local/pkg/snort/snort_head.inc"); + +?> + + + +
+


Please Wait...

+
+ + + +
+ + + +
+ +
+
+ + + + + + + + +
+ + + +
+ + + + +
+ + + + + + + + + + + +
+
+
+
+ + + + + + + + diff --git a/config/snort-dev/javascript/snort_globalsend.js b/config/snort-dev/javascript/snort_globalsend.js index a23f78c9..9147cc25 100644 --- a/config/snort-dev/javascript/snort_globalsend.js +++ b/config/snort-dev/javascript/snort_globalsend.js @@ -212,10 +212,18 @@ function showRequest(formData, jqForm, options) { function showResponse(data, responseText, statusText, xhr, $form) { - function hideLoading() { - jQuery("#loadingWaiting").hide(); + function snortUnhideTabsCall() { + // unhide tabs for iface edit + if (data.snortUnhideTabs == 'true') + { + jQuery('.hide_newtabmenu').show(); + } }; + function hideLoading() { + jQuery("#loadingWaiting").hide(); + }; + // START of fill call to user if (responseText == 'success') { @@ -231,20 +239,24 @@ function showResponse(data, responseText, statusText, xhr, $form) { } // succsess display - if (data.snortgeneralsettings == 'success' || data.snortdelete == 'success' || data.snortreset == 'success') { + if (data.snortgeneralsettings == 'success' || data.snortdelete == 'success' || data.snortreset == 'success') + { var appendElem = jQuery('
success...'); appendElem.appendTo('.loadingWaitingMessage'); - // remove display + // After Save Calls display function finnish() { + snortUnhideTabsCall(); hideLoading(); appendElem.remove(); updatestarted = 1; }; setTimeout(finnish, 2000); + if (data.snortreset) {location.reload();}; // hard refresh - }; + } + // END of fill call to user }else{ diff --git a/config/snort-dev/snort_alerts.php b/config/snort-dev/snort_alerts.php index f3aedbcb..dc385e6d 100644 --- a/config/snort-dev/snort_alerts.php +++ b/config/snort-dev/snort_alerts.php @@ -129,8 +129,9 @@ $arefresh_on = ($generalSettings['arefresh'] == 'on' ? 'checked' : ''); Limit entries to view. Default 250. - - + + + diff --git a/config/snort-dev/snort_blocked.php b/config/snort-dev/snort_blocked.php index eafadb71..c5400298 100644 --- a/config/snort-dev/snort_blocked.php +++ b/config/snort-dev/snort_blocked.php @@ -130,8 +130,9 @@ $brefresh_on = ($generalSettings['brefresh'] == 'on' ? 'checked' : ''); Limit entries to view. Default 500. - - + + + diff --git a/config/snort-dev/snort_head.inc b/config/snort-dev/snort_head.inc index 6e58cc1e..8f9bf9b4 100644 --- a/config/snort-dev/snort_head.inc +++ b/config/snort-dev/snort_head.inc @@ -1,69 +1,104 @@ "") +if (($g["disablethemeselection"] === true) && !empty($g["default_theme"]) && (is_dir($g["www_path"].'/themes/'.$g["default_theme"]))) + $g['theme'] = $g["default_theme"]; +elseif($config['theme'] <> "" && (is_dir($g["www_path"].'/themes/'.$config['theme']))) $g['theme'] = $config['theme']; else $g['theme'] = "pfsense"; - -$apple_ua = array("iPhone","iPod"); -foreach($apple_ua as $useragent) + +/* + * If this device is an apple ipod/iphone + * switch the theme to one that works with it. + */ +$lowres_ua = array("iPhone","iPod", "iPad", "Android"); +foreach($lowres_ua as $useragent) if(strstr($_SERVER['HTTP_USER_AGENT'], $useragent)) - $g['theme'] = "pfsense"; + $g['theme'] = empty($g['theme_lowres']) ? "pfsense" : $g['theme_lowres']; + +$pagetitle = gentitle( $pgtitle ); + ?> - <?=gentitle($pgtitle);?> + <?php echo($config['system']['hostname'] . "." . $config['system']['domain'] . " - " . $pagetitle); ?> - /apple-touch-icon.png”/> + + - - + - - + + + + + "; ?> - + - - - - - + + + + + \n"; ?> +\n"; + echo "\t\n"; + } + echo "\t\n"; + echo "\t\n"; + echo "\t\n"; + echo "\t\n"; + if(file_exists("{$g['www_path']}/javascript/global.js")) + echo "\t\n"; /* * Find all javascript files that need to be included * for this page ... from the arrays ... :) * Coded by: Erik Kristensen */ - $dir = trim(basename($_SERVER["SCRIPT_FILENAME"]), '.php'); - $path = "/usr/local/www/javascript/" . $dir . "/"; + $dir = trim(basename($_SERVER["SCRIPT_FILENAME"], '.php')); + $path = "{$g['www_path']}/javascript/" . $dir . "/"; if (is_dir($path)) { if ($dh = opendir($path)) { while (($file = readdir($dh)) !== false) { - if (is_dir($file)) continue; - echo "\t".''."\n"; + if (is_dir($file)) + continue; + echo "\t\n"; } closedir($dh); } } - if ($oSajax): -?> - - +if (!isset($closehead)) + echo ""; + +/* If this page is being remotely managed then do not allow the loading of the contents. */ +if($config['remote_managed_pages']['item']) { + foreach($config['remote_managed_pages']['item'] as $rmp) { + if($rmp == $_SERVER['SCRIPT_NAME']) { + include("fbegin.inc"); + print_info_box_np("This page is currently being managed by a remote machine."); + include("fend.inc"); + exit; + } + } +} - - - +?> diff --git a/config/snort-dev/snort_headbase.inc b/config/snort-dev/snort_headbase.inc index 59a531bd..8176b4bf 100644 --- a/config/snort-dev/snort_headbase.inc +++ b/config/snort-dev/snort_headbase.inc @@ -10,15 +10,15 @@ \n"; +//echo "\t\n"; -echo "\t\n"; +//echo "\t\n"; -echo "\t\n"; -echo "\t\n"; +//echo "\t\n"; +//echo "\t\n"; -echo "\t\n"; +//echo "\t\n"; ?> diff --git a/config/snort-dev/snort_interfaces.php b/config/snort-dev/snort_interfaces.php index dd5bb75b..fba6c028 100644 --- a/config/snort-dev/snort_interfaces.php +++ b/config/snort-dev/snort_interfaces.php @@ -120,12 +120,12 @@ $a_interfaces = snortSql_fetchAllInterfaceRules('Snortrules', 'snortDBrules'); - DISABLED - MASTER - 3526 - ENABLED - DISABLED - Mster IPs  + DISABLED + MASTER + 3526 + ENABLED + DISABLED + Mster IPs  @@ -202,15 +202,15 @@ $a_interfaces = snortSql_fetchAllInterfaceRules('Snortrules', 'snortDBrules'); - {$ifaceStat} - {$list['interface']} - {$list['performance']} - {$blockStat} - {$logStat} - {$list['descr']} + {$ifaceStat} + {$list['interface']} + {$list['performance']} + {$blockStat} + {$logStat} + {$list['descr']} - + "; echo ' @@ -243,12 +243,12 @@ $a_interfaces = snortSql_fetchAllInterfaceRules('Snortrules', 'snortDBrules'); echo " - {$barnyard2Stat} - {$list['interface']} - {$list['uuid']}_{$list['interface']} - unified2 - {$barnyard2Stat} - Mster IPs  + {$barnyard2Stat} + {$list['interface']} + {$list['uuid']}_{$list['interface']} + unified2 + {$barnyard2Stat} + Mster IPs  diff --git a/config/snort-dev/snort_interfaces_edit.php b/config/snort-dev/snort_interfaces_edit.php new file mode 100644 index 00000000..223e7b1e --- /dev/null +++ b/config/snort-dev/snort_interfaces_edit.php @@ -0,0 +1,455 @@ +. + Copyright (C) 2008-2009 Robert Zelaya. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +require_once("guiconfig.inc"); +require_once("/usr/local/pkg/snort/snort_new.inc"); +require_once("/usr/local/pkg/snort/snort_gui.inc"); + +// set page vars + +$uuid = $_GET['uuid']; +if (isset($_POST['uuid'])) +$uuid = $_POST['uuid']; + +if ($uuid == '') { + echo 'error: no uuid'; + exit(0); +} + + + +$a_list = snortSql_fetchAllSettings('snortDBrules', 'Snortrules', 'uuid', $uuid); + + if (!is_array($a_list)) + { + $a_list = array(); + } + +$a_whitelist = snortSql_fetchAllWhitelistTypes('SnortWhitelist', 'SnortWhitelistips'); + + if (!is_array($a_whitelist)) + { + $a_whitelist = array(); + } + +$a_suppresslist = snortSql_fetchAllWhitelistTypes('SnortSuppress', ''); + +if (!is_array($a_suppresslist)) +{ + $a_suppresslist = array(); +} + + + $pgtitle = "Services: Snort: Interface Edit:"; + include("/usr/local/pkg/snort/snort_head.inc"); + +?> + + + + + + + +
+


Please Wait...

+
+ + + +
+ + + +
+ +
+
+ + + + + + + + +
+ +
+ + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
General Settings
Interface +   + "> +   Enable or Disable +
Interface + +
+ Choose which interface this rule applies to.
+ Hint: in most cases, you'll want to use WAN here.
+
Description + +
+ You may enter a description here for your reference (not parsed). +
Memory Performance + +
+ Lowmem and ac-bnfa are recommended for low end systems, Ac: high memory, best performance, ac-std: moderate + memory,high performance, acs: small memory, moderateperformance, ac-banded: small memory,moderate performance, ac-sparsebands: small memory, high performance. +
+
Choose the networks snort should inspect and whitelist.
Home net + +
+ Choose the home net you will like this rule to use.  Note: Default homenet adds only local networks. +
+ Hint: Most users add a list offriendly ips that the firewall cant see.
+
External net + +
+ Choose the external net you will like this rule to use. Note: Default external net, networks that are not home net. +
+ Hint: Most users should leave this setting at default.
+
Block offenders + > +
+ Checking this option will automatically block hosts that generate a Snort alerts with SnortSam. +
Suppression and filtering + +
+ Choose the suppression or filtering file you will like this rule to use.  + Note: Default option disables suppression and filtering. +
Choose the types of logs snort should create.
Send alerts to mainSystem logs + > +
+ Snort will send Alerts to the Pfsense system logs. +
Log to a Tcpdump file + > +
+ Snort will log packets to a tcpdump-formatted file. The file then can be analyzed by an application such as Wireshark which understands pcap file formats. + WARNING: File may become large. +
Log Alerts to a snort unified2 file + > +
+ Snort will log Alerts to a file in the UNIFIED2 format. This is a requirement for barnyard2. +
Arguments here will be automatically inserted into the snort configuration.
Advanced configuration pass through + +
+ + + + +
  + Note: + Please save your settings before you click start. +
+ + + +
+
+ + + +
+ + + + + + + + diff --git a/config/snort-dev/snort_interfaces_global.php b/config/snort-dev/snort_interfaces_global.php index 46b902de..c391f10c 100644 --- a/config/snort-dev/snort_interfaces_global.php +++ b/config/snort-dev/snort_interfaces_global.php @@ -153,8 +153,6 @@ jQuery(document).ready(function(){
-
-
@@ -183,8 +181,10 @@ jQuery(document).ready(function(){ + - + + @@ -365,23 +365,22 @@ jQuery(document).ready(function(){ + + - +
-
-  WARNING:
This will reset all global and interface settings.
-
Note:
Changing any settings on this page will affect all interfaces. Please, double check if your oink code is correct and the type of snort.org account you hold.
diff --git a/config/snort-dev/snort_interfaces_suppress_edit.php b/config/snort-dev/snort_interfaces_suppress_edit.php index aa3c9905..28bb7868 100644 --- a/config/snort-dev/snort_interfaces_suppress_edit.php +++ b/config/snort-dev/snort_interfaces_suppress_edit.php @@ -120,12 +120,13 @@ if ($a_list == '') - - - - - - + + + + + + +
diff --git a/config/snort-dev/snort_interfaces_whitelist_edit.php b/config/snort-dev/snort_interfaces_whitelist_edit.php index eb6d2edb..0e426159 100644 --- a/config/snort-dev/snort_interfaces_whitelist_edit.php +++ b/config/snort-dev/snort_interfaces_whitelist_edit.php @@ -143,11 +143,12 @@ $vpnips_on = ($vpnips_chk == 'on' ? 'checked' : ''); - - - - - + + + + + + diff --git a/config/snort-dev/snort_json_post.php b/config/snort-dev/snort_json_post.php index 6ae100b1..8aa5b8ea 100644 --- a/config/snort-dev/snort_json_post.php +++ b/config/snort-dev/snort_json_post.php @@ -65,8 +65,9 @@ if ($_POST['RMlistDelRow'] == 1) // general settings save if ($_POST['snortSaveSettings'] == 1) { - - if ($_POST['dbTable'] == 'SnortSettings') + + // Save general settings + if ($_POST['dbTable'] == 'SnortSettings') { if ($_POST['ifaceTab'] == 'snort_interfaces_global') @@ -76,13 +77,18 @@ if ($_POST['snortSaveSettings'] == 1) } - if ($_POST['ifaceTab'] == 'snort_alerts_blocked') + if ($_POST['ifaceTab'] == 'snort_alerts') { - if (isset($_POST['alertnumber'])) - $_POST['arefresh'] = ($_POST['arefresh'] == '' ? off : $_POST['arefresh']); + if (!isset($_POST['arefresh'])) + $_POST['arefresh'] = ($_POST['arefresh'] == '' ? off : $_POST['arefresh']); + + } + + if ($_POST['ifaceTab'] == 'snort_blocked') + { - if (isset($_POST['blertnumber'])) + if (!isset($_POST['brefresh'])) $_POST['brefresh'] = ($_POST['brefresh'] == '' ? off : $_POST['brefresh']); } @@ -99,14 +105,64 @@ if ($_POST['snortSaveSettings'] == 1) //return true; conf_mount_rw(); - snortSql_updateSettings($_POST, 'id', '1'); + snortSql_updateSettings($_POST['dbName'], $_POST, 'id', '1'); conf_mount_ro(); } // end of dbTable SnortSettings - + + // Save rules settings + if ($_POST['dbTable'] == 'Snortrules') + { + + if ($_POST['ifaceTab'] == 'snort_interfaces_edit') + { + + if (!isset($_POST['enable'])) + $_POST['enable'] = ($_POST['enable'] == '' ? off : $_POST['enable']); + + if (!isset($_POST['blockoffenders7'])) + $_POST['blockoffenders7'] = ($_POST['blockoffenders7'] == '' ? off : $_POST['blockoffenders7']); + + if (!isset($_POST['alertsystemlog'])) + $_POST['alertsystemlog'] = ($_POST['alertsystemlog'] == '' ? off : $_POST['alertsystemlog']); + + if (!isset($_POST['tcpdumplog'])) + $_POST['tcpdumplog'] = ($_POST['tcpdumplog'] == '' ? off : $_POST['tcpdumplog']); + + if (!isset($_POST['snortunifiedlog'])) + $_POST['snortunifiedlog'] = ($_POST['snortunifiedlog'] == '' ? off : $_POST['snortunifiedlog']); + + // convert textbox to base64 + $_POST['configpassthru'] = base64_encode($_POST['configpassthru']); + + } + + // unhide tabs Json + if ($_POST['ifaceTab'] == 'snort_interfaces_edit') + { + $snortUnhideTabs = ', "snortUnhideTabs": "true"'; + } + + // unset POSTs that are markers not in db + unset($_POST['snortSaveSettings']); + unset($_POST['ifaceTab']); + + // update date on every save + $_POST['date'] = date(U); + + + //print_r($_POST); + //return true; + + conf_mount_rw(); + snortSql_updateSettings($_POST['dbName'], $_POST, 'uuid', $_POST['uuid']); + conf_mount_ro(); + + } // end of dbTable Snortrules + echo ' { - "snortgeneralsettings": "success" + "snortgeneralsettings": "success"' . $snortUnhideTabs . ' } '; return true; @@ -136,7 +192,7 @@ if ($_POST['snortSaveSuppresslist'] == 1) $_POST['suppresspassthru'] = base64_encode($_POST['suppresspassthru']); //conf_mount_rw(); - snortSql_updateSettings($_POST, 'uuid', $_POST['uuid']); + snortSql_updateSettings($_POST['dbName'], $_POST, 'uuid', $_POST['uuid']); //conf_mount_ro(); echo ' @@ -181,8 +237,11 @@ if ($_POST['snortSaveWhitelist'] == 1) $genSettings['date'] = date(U); + //print_r($_POST); + //return true; + //conf_mount_rw(); - snortSql_updateSettings($genSettings, 'uuid', $genSettings['uuid']); + snortSql_updateSettings($_POST['dbName'], $genSettings, 'uuid', $genSettings['uuid']); if ($_POST['list'] != '') { snortSql_updateWhitelistIps($_POST['dbTable'], $_POST['list'], $genSettings['filename']); diff --git a/config/snort-dev/snort_new.inc b/config/snort-dev/snort_new.inc index 5530a854..b16ec6fc 100644 --- a/config/snort-dev/snort_new.inc +++ b/config/snort-dev/snort_new.inc @@ -78,13 +78,14 @@ function snortSql_fetchAllSettingsList($table, $listFilename) } // Update settings to database -function snortSql_updateSettings($settings, $type, $id_uuid) { +function snortSql_updateSettings($dbname, $settings, $type, $id_uuid) { - $db = '/usr/local/pkg/snort/snortDB'; + $db = "/usr/local/pkg/snort/$dbname"; $mydb = sqlite_open("$db"); $table = $settings['dbTable']; // unset POSTs that are markers not in db + unset($settings['dbName']); unset($settings['dbTable']); // START add new row if not set @@ -176,7 +177,7 @@ function snortSql_fetchAllWhitelistTypes($table, $table2) $result = sqlite_query($db, - "SELECT description, filename, uuid, id FROM {$table} where id > 0; + "SELECT * FROM {$table} where id > 0; "); $chktable = sqlite_fetch_all($result, SQLITE_ASSOC); @@ -204,6 +205,8 @@ function snortSql_fetchAllWhitelistTypes($table, $table2) $final2['uuid'] = $value['uuid']; $final2['filename'] = $value['filename']; $final2['description'] = $value['description']; + $final2['snortlisttype'] = $value['snortlisttype']; + $final2['list'] = $chktable2; diff --git a/config/snort-dev/testing.php b/config/snort-dev/testing.php index 20411304..f36a9edd 100644 --- a/config/snort-dev/testing.php +++ b/config/snort-dev/testing.php @@ -1,52 +1,26 @@ ' . "\n\n"; - print_r($generalSettings); + print_r($a_suppresst); + + //foreach ($a_whitelist as $value) + //{ + //echo $value['filename'] . "\n"; + //} echo "\n" . ''; - + ?> diff --git a/config/snort/snort_interfaces_edit.php b/config/snort/snort_interfaces_edit.php index 6b3b3a55..5ac9c186 100644 --- a/config/snort/snort_interfaces_edit.php +++ b/config/snort/snort_interfaces_edit.php @@ -428,7 +428,6 @@ echo " document.iform.performance.disabled = endis; document.iform.blockoffenders7.disabled = endis; document.iform.alertsystemlog.disabled = endis; - document.iform.whitelistname.disabled = endis; document.iform.externallistname.disabled = endis; document.iform.homelistname.disabled = endis; document.iform.suppresslistname.disabled = endis; -- cgit v1.2.3
Add the name and description of the file.