. * */ // Init owncloud // Check if we are a user OCP\JSON::checkLoggedIn(); // Get paramteres $filecontents = isset($_POST['filecontents']) ? $_POST['filecontents'] : false; $path = isset($_POST['path']) ? $_POST['path'] : ''; $mtime = isset($_POST['mtime']) ? $_POST['mtime'] : ''; if($path != '' && $mtime != '' && $filecontents) { // Get file mtime $filemtime = OC_Filesystem::filemtime($path); if($mtime != $filemtime) { // Then the file has changed since opening OCP\JSON::error(); OCP\Util::writeLog('files_texteditor',"File: ".$path." modified since opening.",OCP\Util::ERROR); } else { // File same as when opened // Save file if(OC_Filesystem::is_writable($path)) { $filecontents = iconv(mb_detect_encoding($filecontents), "UTF-8", $filecontents); OC_Filesystem::file_put_contents($path, $filecontents); // Clear statcache clearstatcache(); // Get new mtime $newmtime = OC_Filesystem::filemtime($path); OCP\JSON::success(array('data' => array('mtime' => $newmtime))); } else { // Not writeable! OCP\JSON::error(array('data' => array( 'message' => 'Insufficient permissions'))); OCP\Util::writeLog('files_texteditor',"User does not have permission to write to file: ".$path,OCP\Util::ERROR); } } } else if($path == ''){ OCP\JSON::error(array('data' => array( 'message' => 'File path not supplied'))); OCP\Util::writeLog('files_texteditor','No file path supplied', OCP\Util::ERROR); } else if($mtime == ''){ OCP\JSON::error(array('data' => array( 'message' => 'File mtime not supplied'))); OCP\Util::writeLog('files_texteditor','No file mtime supplied' ,OCP\Util::ERROR); } else if(!$filecontents){ OCP\JSON::error(array('data' => array( 'message' => 'File contents not supplied'))); OCP\Util::writeLog('files_texteditor','The file contents was not supplied',OCP\Util::ERROR); }