diff --git a/lib/file-control.php b/lib/file-control.php
index cc4e5a7..67f35d5 100644
--- a/lib/file-control.php
+++ b/lib/file-control.php
@@ -50,25 +50,33 @@ if ($_GET['action']=="newFolder") {
$fileName = substr($file,strrpos($file,"/")+1);
$fileLoc = substr($file,0,strrpos($file,"/"));
if ($fileLoc=="") {$fileLoc = "/";};
- echo '';
+ echo '';
} else {
- echo '';
- echo '';
+ if (!is_writable($docRoot.$file)) {
+ echo "";
+ } else {
+ echo '';
+ }
+ echo '';
}
}
// If we're due to rename a file...
if ($_GET['action']=="rename") {
- if ($_SESSION['userLevel'] > 0) {
+ if ($_SESSION['userLevel'] > 0 && is_writable($_GET['oldFileName'])) {
rename($_GET['oldFileName'],$docRoot.$file);
// Reload file manager
$fileName = substr($file,strrpos($file,"/")+1);
$fileLoc = substr($file,0,strrpos($file,"/"));
if ($fileLoc=="") {$fileLoc = "/";};
- echo '';
+ echo '';
} else {
- echo '';
- echo '';
+ if (!is_writable($_GET['oldFileName'])) {
+ echo "";
+ } else {
+ echo '';
+ }
+ echo '';
}
}
@@ -77,20 +85,29 @@ if ($_GET['action']=="delete") {
if ($_SESSION['userLevel'] > 0) {
$filesArray = split(";",$file); // May contain more than one file here
for ($i=0;$i<=count($filesArray)-1;$i++) {
- if (is_dir($docRoot.$filesArray[$i])) {
- rrmdir($docRoot.$filesArray[$i]);
+ if (is_writable($docRoot.$filesArray[$i])) {
+ if (is_dir($docRoot.$filesArray[$i])) {
+ rrmdir($docRoot.$filesArray[$i]);
+ } else {
+ unlink($docRoot.$filesArray[$i]);
+ }
+ // Reload file manager
+ $fileName = substr($file,strrpos($file,"/")+1);
+ $fileLoc = substr($file,0,strrpos($file,"/"));
+ if ($fileLoc=="") {$fileLoc = "/";};
+ echo '';
} else {
- unlink($docRoot.$filesArray[$i]);
+ echo "";
}
+ echo '';
}
- // Reload file manager
- $fileName = substr($file,strrpos($file,"/")+1);
- $fileLoc = substr($file,0,strrpos($file,"/"));
- if ($fileLoc=="") {$fileLoc = "/";};
- echo '';
} else {
- echo '';
- echo '';
+ if (!is_writable($docRoot.$filesArray[$i])) {
+ echo "";
+ } else {
+ echo '';
+ }
+ echo '';
}
}
@@ -118,23 +135,33 @@ if ($_GET['action']=="save") {
}
$saveFile = str_replace("\\","/",$_SERVER['DOCUMENT_ROOT']).$file;
$saveFile = str_replace("//","/",$saveFile);
- $fh = fopen($saveFile, 'w') or die("can't open file");
- fwrite($fh, $_POST['contents']);
- fclose($fh);
- if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") {
- // Reload file manager & stop CTRL+s being sticky
- $fileName = substr($file,strrpos($file,"/")+1);
- $fileLoc = substr($file,0,strrpos($file,"/"));
- if ($fileLoc=="") {$fileLoc = "/";};
- echo '';
+ if (is_writable($saveFile)) {
+ $fh = fopen($saveFile, 'w') or die("can't open file");
+ fwrite($fh, $_POST['contents']);
+ fclose($fh);
+
+ if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") {
+ // Reload file manager & stop CTRL+s being sticky
+ $fileName = substr($file,strrpos($file,"/")+1);
+ $fileLoc = substr($file,0,strrpos($file,"/"));
+ if ($fileLoc=="") {$fileLoc = "/";};
+ echo '';
+ }
+ if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") {
+ echo '';
+ }
+ echo '';
+ } else {
+ echo "";
+ echo '';
}
- if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") {
- echo '';
- }
- echo '';
} else {
- echo '';
- echo '';
+ if (!is_writable($saveFile)) {
+ echo "";
+ } else {
+ echo '';
+ }
+ echo '';
}
}
};
@@ -164,6 +191,7 @@ if (action=="load") {
top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab], null);
top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab] = top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(0, "cm-s-activeLine");
top.ICEcoder.nextcMInstance++;
+ top.ICEcoder.serverMessage();
top.ICEcoder.loadingFile = false;
}