From f507917fd63584c4a6fc60cef6f18d94379f3eaa Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Mon, 12 Mar 2012 17:50:13 +0000 Subject: [PATCH] Error catching to alerts plus clearing serverMessage Alerts now show when an action cannot be taken (such as not having permission to save file etc) Clearing of serverMessage upon successfully processing action --- lib/file-control.php | 92 +++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 32 deletions(-) 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; }