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; }