mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-16 01:24:38 +00:00
www: kill edit.php as well
This commit is contained in:
parent
831ff3581a
commit
f958a96258
@ -296,14 +296,6 @@ $priv_list['page-diagnostics-traceroute']['descr'] = gettext("Allow access to th
|
||||
$priv_list['page-diagnostics-traceroute']['match'] = array();
|
||||
$priv_list['page-diagnostics-traceroute']['match'][] = "diag_traceroute.php*";
|
||||
|
||||
$priv_list['page-diagnostics-edit'] = array();
|
||||
$priv_list['page-diagnostics-edit']['name'] = gettext("WebCfg - Diagnostics: Edit FIle");
|
||||
$priv_list['page-diagnostics-edit']['descr'] = gettext("Allow access to the 'Diagnostics: Edit File' page.");
|
||||
$priv_list['page-diagnostics-edit']['match'] = array();
|
||||
$priv_list['page-diagnostics-edit']['match'][] = "edit.php*";
|
||||
$priv_list['page-diagnostics-edit']['match'][] = "browser.php*";
|
||||
$priv_list['page-diagnostics-edit']['match'][] = "filebrowser/browser.php*";
|
||||
|
||||
$priv_list['page-firewall-aliases'] = array();
|
||||
$priv_list['page-firewall-aliases']['name'] = gettext("WebCfg - Firewall: Aliases page");
|
||||
$priv_list['page-firewall-aliases']['descr'] = gettext("Allow access to the 'Firewall: Aliases' page.");
|
||||
|
||||
@ -47,9 +47,6 @@ page-diagnostics-routingtables=diag_routes.php*
|
||||
page-diagnostics-statessummary=diag_states_summary.php*
|
||||
page-diagnostics-tables=diag_tables.php*
|
||||
page-diagnostics-traceroute=diag_traceroute.php*
|
||||
page-diagnostics-edit=edit.php*
|
||||
page-diagnostics-edit=browser.php*
|
||||
page-diagnostics-edit=filebrowser/browser.php*
|
||||
page-firewall-aliases=firewall_aliases.php*
|
||||
page-firewall-alias-edit=firewall_aliases_edit.php*
|
||||
page-firewall-alias-import=firewall_aliases_import.php*
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (C) 2014 Deciso B.V.
|
||||
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.
|
||||
*/
|
||||
?>
|
||||
|
||||
<? include("edit.php"); ?>
|
||||
233
src/www/edit.php
233
src/www/edit.php
@ -1,233 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (C) 2014 Deciso B.V.
|
||||
Copyright (C) 2004, 2005 Scott Ullrich
|
||||
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.
|
||||
*/
|
||||
|
||||
$unsecure=true; // disabel editor for security purpose, need to be removed later
|
||||
if ($unsecure) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$pgtitle = array(gettext("Diagnostics"), gettext("Edit file"));
|
||||
require("guiconfig.inc");
|
||||
|
||||
|
||||
if($_POST['action']) {
|
||||
switch($_POST['action']) {
|
||||
case 'load':
|
||||
if(strlen($_POST['file']) < 1) {
|
||||
echo "|5|" . gettext("No file name specified") . ".|";
|
||||
} elseif(is_dir($_POST['file'])) {
|
||||
echo "|4|" . gettext("Loading a directory is not supported") . ".|";
|
||||
} elseif(! is_file($_POST['file'])) {
|
||||
echo "|3|" . gettext("File does not exist or is not a regular file") . ".|";
|
||||
} else {
|
||||
$data = file_get_contents(urldecode($_POST['file']));
|
||||
if($data === false) {
|
||||
echo "|1|" . gettext("Failed to read file") . ".|";
|
||||
} else {
|
||||
$data = base64_encode($data);
|
||||
echo "|0|{$_POST['file']}|{$data}|";
|
||||
}
|
||||
}
|
||||
exit;
|
||||
case 'save':
|
||||
if(strlen($_POST['file']) < 1) {
|
||||
echo "|" . gettext("No file name specified") . ".|";
|
||||
} else {
|
||||
conf_mount_rw();
|
||||
$_POST['data'] = str_replace("\r", "", base64_decode($_POST['data']));
|
||||
$ret = file_put_contents($_POST['file'], $_POST['data']);
|
||||
conf_mount_ro();
|
||||
if($_POST['file'] == "/conf/config.xml" || $_POST['file'] == "/cf/conf/config.xml") {
|
||||
if(file_exists("/tmp/config.cache"))
|
||||
unlink("/tmp/config.cache");
|
||||
disable_security_checks();
|
||||
}
|
||||
if($ret === false) {
|
||||
echo "|" . gettext("Failed to write file") . ".|";
|
||||
} elseif($ret <> strlen($_POST['data'])) {
|
||||
echo "|" . gettext("Error while writing file") . ".|";
|
||||
} else {
|
||||
echo "|" . gettext("File successfully saved") . ".|";
|
||||
}
|
||||
}
|
||||
exit;
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
$closehead = false;
|
||||
require("head.inc");
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
outputJavaScriptFileInline("filebrowser/browser.js");
|
||||
outputJavaScriptFileInline("javascript/base64.js");
|
||||
include("fbegin.inc");
|
||||
?>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
function loadFile() {
|
||||
jQuery("#fileStatus").html("<?=gettext("Loading file"); ?> ...");
|
||||
jQuery("#fileStatusBox").show(500);
|
||||
|
||||
jQuery.ajax(
|
||||
"<?=$_SERVER['SCRIPT_NAME'];?>", {
|
||||
type: "post",
|
||||
data: "action=load&file=" + jQuery("#fbTarget").val(),
|
||||
complete: loadComplete
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function loadComplete(req) {
|
||||
jQuery("#fileContent").show(1000);
|
||||
var values = req.responseText.split("|");
|
||||
values.shift(); values.pop();
|
||||
|
||||
if(values.shift() == "0") {
|
||||
var file = values.shift();
|
||||
var fileContent = Base64.decode(values.join("|"));
|
||||
jQuery("#fileStatus").html("<?=gettext("File successfully loaded"); ?>.");
|
||||
jQuery("#fileContent").val(fileContent);
|
||||
}
|
||||
else {
|
||||
jQuery("#fileStatus").html(values[0]);
|
||||
jQuery("#fileContent").val("");
|
||||
}
|
||||
jQuery("#fileContent").show(1000);
|
||||
}
|
||||
|
||||
function saveFile(file) {
|
||||
jQuery("#fileStatus").html("<?=gettext("Saving file"); ?> ...");
|
||||
jQuery("#fileStatusBox").show(500);
|
||||
|
||||
var fileContent = Base64.encode(jQuery("#fileContent").val());
|
||||
fileContent = fileContent.replace(/\+/g,"%2B");
|
||||
|
||||
jQuery.ajax(
|
||||
"<?=$_SERVER['SCRIPT_NAME'];?>", {
|
||||
type: "post",
|
||||
data: "action=save&file=" + jQuery("#fbTarget").val() +
|
||||
"&data=" + fileContent,
|
||||
complete: function(req) {
|
||||
var values = req.responseText.split("|");
|
||||
jQuery("#fileStatus").html(values[1]);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<section class="page-content-main">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<section class="col-xs-12">
|
||||
<div class="content-box">
|
||||
|
||||
<div class="content-box-head container-fluid">
|
||||
<!-- file status box -->
|
||||
<div style="display:none; background:#eeeeee;" id="fileStatusBox">
|
||||
<div class="vexpl" style="padding-left:15px;">
|
||||
<strong id="fileStatus"></strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- control buttons -->
|
||||
<div class="content-box-main ">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped __nomb">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><?=gettext("Save / Load from path"); ?>:</td>
|
||||
<td><input type="text" class="form-control file" id="fbTarget" size="45" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<input type="button" class="btn btn-primary" onclick="loadFile();" value="<?=gettext('Load');?>" />
|
||||
<input type="button" class="btn btn-default" id="fbOpen" value="<?=gettext('Browse');?>" />
|
||||
<input type="button" class="btn btn-default" onclick="saveFile();" value="<?=gettext('Save');?>" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- file browser window, is hidden by default -->
|
||||
<div id="fbBrowser" style="display:none; background-color:#ffffff; border: 1px solid #cccccc; padding: 10px;"></div>
|
||||
|
||||
<!-- file viewer/editor -->
|
||||
<div style="background:#eeeeee;" id="fileOutput">
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
window.onload=function(){
|
||||
document.getElementById("fileContent").wrap='off';
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
<textarea id="fileContent" name="fileContent" style="display:none; width: 100%; max-width:100%;" rows="30" cols=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
jQuery(window).load(
|
||||
function() {
|
||||
jQuery("#fbTarget").focus();
|
||||
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
<?php if($_GET['action'] == "load"): ?>
|
||||
jQuery(window).load(
|
||||
function() {
|
||||
jQuery("#fbTarget").val("<?=$_GET['path'];?>");
|
||||
loadFile();
|
||||
}
|
||||
);
|
||||
<?php endif; ?>
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<?php include("foot.inc"); ?>
|
||||
@ -272,7 +272,6 @@ $diagnostics_menu[] = array(gettext("pfInfo"), "/diag_pf_info.php");
|
||||
$diagnostics_menu[] = array(gettext("pfTop"), "/diag_system_pftop.php");
|
||||
$diagnostics_menu[] = array(gettext("Ping"), "/diag_ping.php");
|
||||
$diagnostics_menu[] = array(gettext("Reboot"), "/diag_reboot.php");
|
||||
//$diagnostics_menu[] = array(gettext("Edit File"), "/diag_edit.php"); // Removed file editor for security reasons
|
||||
$diagnostics_menu[] = array(gettext("Packet Capture"), "/diag_packet_capture.php");
|
||||
$diagnostics_menu[] = array(gettext("Traceroute"), "/diag_traceroute.php");
|
||||
$diagnostics_menu[] = array(gettext("SMART Status"), "/diag_smart.php");
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
/*
|
||||
pfSense_MODULE: shell
|
||||
*/
|
||||
|
||||
jQuery(document).ready(
|
||||
function() {
|
||||
jQuery("#fbOpen").click(
|
||||
function() {
|
||||
jQuery("#fbBrowser").fadeIn(750);
|
||||
fbBrowse(jQuery("#fbTarget").val());
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
function fbBrowse(path) {
|
||||
jQuery("#fileContent").fadeOut();
|
||||
|
||||
if(jQuery("#fbCurrentDir"))
|
||||
jQuery("#fbCurrentDir").html("Loading ...");
|
||||
|
||||
jQuery.ajax(
|
||||
"/filebrowser/browser.php?path=" + encodeURI(path ? path : "/"),
|
||||
{ type: "get", complete: fbComplete }
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function fbComplete(req) {
|
||||
jQuery("#fbBrowser").html(req.responseText);
|
||||
|
||||
var actions = {
|
||||
fbHome: function() { fbBrowse("/"); },
|
||||
fbClose: function() { jQuery("#fbBrowser").fadeOut(750); },
|
||||
fbDir: function() { fbBrowse(this.id); },
|
||||
fbFile: function() { jQuery("#fbTarget").val(this.id); }
|
||||
}
|
||||
|
||||
for(var type in actions) {
|
||||
jQuery("#fbBrowser ." + type).each(
|
||||
function() {
|
||||
jQuery(this).click(actions[type]);
|
||||
jQuery(this).css("cursor","pointer");
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,159 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once("guiconfig.inc");
|
||||
|
||||
/*
|
||||
pfSense_MODULE: shell
|
||||
*/
|
||||
// Fetch a list of directories and files inside a given directory
|
||||
function get_content($dir) {
|
||||
$dirs = array();
|
||||
$files = array();
|
||||
|
||||
clearstatcache();
|
||||
$fd = @opendir($dir);
|
||||
|
||||
while($entry = @readdir($fd)) {
|
||||
if($entry == ".") continue;
|
||||
if($entry == ".." && $dir == "/") continue;
|
||||
|
||||
if(is_dir("{$dir}/{$entry}"))
|
||||
array_push($dirs, $entry);
|
||||
else
|
||||
array_push($files, $entry);
|
||||
}
|
||||
|
||||
@closedir($fd);
|
||||
|
||||
natsort($dirs);
|
||||
natsort($files);
|
||||
|
||||
return array($dirs, $files);
|
||||
}
|
||||
|
||||
$path = realpath(strlen($_GET['path']) > 0 ? $_GET['path'] : "/");
|
||||
if(is_file($path))
|
||||
$path = dirname($path);
|
||||
|
||||
// ----- header -----
|
||||
?>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="fbHome" width="25px" align="left">
|
||||
<span onClick="jQuery('#fbTarget').val('<?=$realDir?>'); fbBrowse('/');" alt="Home" title="Home" class="glyphicon glyphicon-home"></span>
|
||||
</td>
|
||||
<td><b><?=$path;?></b></td>
|
||||
<td class="fbClose" align="right">
|
||||
<span onClick="jQuery('#fbBrowser').fadeOut();" border="0" class="glyphicon glyphicon-remove" alt="Close" title="Close" ></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="fbCurrentDir" colspan="3" class="vexpl" align="left">
|
||||
<?php
|
||||
|
||||
// ----- read contents -----
|
||||
if(is_dir($path)) {
|
||||
list($dirs, $files) = get_content($path);
|
||||
?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
else {
|
||||
?>
|
||||
Directory does not exist.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php
|
||||
exit;
|
||||
}
|
||||
|
||||
// ----- directories -----
|
||||
foreach($dirs as $dir):
|
||||
$realDir = realpath("{$path}/{$dir}");
|
||||
?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td class="fbDir vexpl" id="<?=$realDir;?>" align="left">
|
||||
<div onClick="jQuery('#fbTarget').val('<?=$realDir?>'); fbBrowse('<?=$realDir?>');">
|
||||
<span class="glyphicon glyphicon-folder-close text-primary"></span>
|
||||
<?=$dir;?>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php
|
||||
endforeach;
|
||||
|
||||
// ----- files -----
|
||||
foreach($files as $file):
|
||||
$ext = strrchr($file, ".");
|
||||
|
||||
switch ($ext) {
|
||||
case ".css":
|
||||
case ".html":
|
||||
case ".xml":
|
||||
$type = "glyphicon glyphicon-globe";
|
||||
break;
|
||||
case ".rrd":
|
||||
$type = "database";
|
||||
break;
|
||||
case ".gif":
|
||||
case ".jpg":
|
||||
case ".png":
|
||||
$type = "glyphicon glyphicon-picture";
|
||||
break;
|
||||
case ".js":
|
||||
$type = "glyphicon glyphicon-globe";
|
||||
break;
|
||||
case ".pdf":
|
||||
$type = "glyphicon glyphicon-book";
|
||||
break;
|
||||
case ".inc":
|
||||
case ".php":
|
||||
$type = "glyphicon glyphicon-globe";
|
||||
break;
|
||||
case ".conf":
|
||||
case ".pid":
|
||||
case ".sh":
|
||||
$type = "glyphicon glyphicon-wrench";
|
||||
break;
|
||||
case ".bz2":
|
||||
case ".gz":
|
||||
case ".tgz":
|
||||
case ".zip":
|
||||
$type = "glyphicon glyphicon-compressed";
|
||||
break;
|
||||
default:
|
||||
$type = "glyphicon glyphicon-cog";
|
||||
}
|
||||
|
||||
$fqpn = "{$path}/{$file}";
|
||||
|
||||
if(is_file($fqpn)) {
|
||||
$fqpn = realpath($fqpn);
|
||||
$size = sprintf("%.2f KiB", filesize($fqpn) / 1024);
|
||||
}
|
||||
else
|
||||
$size = "";
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td class="fbFile vexpl" id="<?=$fqpn;?>" align="left">
|
||||
<?php $filename = str_replace("//","/", "{$path}/{$file}"); ?>
|
||||
<div onClick="jQuery('#fbTarget').val('<?=$filename?>'); loadFile(); jQuery('#fbBrowser').fadeOut();">
|
||||
<span class="<?=$type;?>"></span>
|
||||
<?=$file;?>
|
||||
</div>
|
||||
</td>
|
||||
<td align="right" class="vexpl">
|
||||
<?=$size;?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
</table>
|
||||
Loading…
x
Reference in New Issue
Block a user