/php/main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_delete_file.php

https://bitbucket.org/frchico/chamilo_openshift · PHP · 208 lines · 160 code · 11 blank · 37 comment · 41 complexity · 056c84856ec3c3ddca11b6a64b16615f MD5 · raw file

  1. <?php
  2. /**
  3. * delete selected files
  4. * @author Logan Cai (cailongqun [at] yahoo [dot] com [dot] cn)
  5. * @link www.phpletter.com
  6. * @since 22/April/2007
  7. *
  8. * Modify for Chamilo
  9. * @author Juan Carlos Ra�a
  10. * @since 19/March/2009
  11. */
  12. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php");
  13. $error = "";
  14. if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_DELETE)
  15. {
  16. $error = SYS_DISABLED;
  17. }
  18. elseif(!empty($_GET['delete']))
  19. {//delete the selected file from context menu
  20. if(!file_exists($_GET['delete']))
  21. {
  22. $error = ERR_FILE_NOT_AVAILABLE;
  23. }
  24. elseif(!isUnderRoot($_GET['delete']))
  25. {
  26. $error = ERR_FOLDER_PATH_NOT_ALLOWED;
  27. }else
  28. {
  29. include_once(CLASS_FILE);
  30. $file = new file();
  31. if(is_dir($_GET['delete'])
  32. && isValidPattern(CONFIG_SYS_INC_DIR_PATTERN, getBaseName($_GET['delete']))
  33. && !isInvalidPattern(CONFIG_SYS_EXC_DIR_PATTERN, getBaseName($_GET['delete'])))
  34. {
  35. /////////////bridge to Chamilo by Juan Carlos Ra�a Trabado
  36. if(!empty($_course['path']))
  37. {
  38. //find path
  39. $mainPath='../../../../../../../courses/'.$_course['path'].'/document/';//get Chamilo
  40. $fullPath = $_GET['delete']; //get Ajaxfilemanager
  41. $chamiloPath = substr($fullPath, strlen($mainPath)-strlen($fullPath)-1,-1);
  42. //find base_work_dir
  43. $course_dir = $_course['path']."/document";//get Chamilo
  44. $sys_course_path = api_get_path(SYS_COURSE_PATH);//get Chamilo
  45. $base_work_dir = $sys_course_path.$course_dir; // sample c:/xampp/htdocs/chamilo2009beta/courses/JUAN2009/document
  46. //delete directory
  47. //check protect directories
  48. if ($chamiloPath!='/audio' && $chamiloPath!='/flash' && $chamiloPath!='/images' && $chamiloPath!='/shared_folder' && $chamiloPath!='/video')
  49. {
  50. if(! $is_allowed_to_edit && DocumentManager::check_readonly($_course,api_get_user_id(),$chamiloPath))
  51. {
  52. $error=get_lang('CantDeleteReadonlyFiles'); //From Chamilo to Ajaxfilemanager
  53. }
  54. else
  55. {
  56. $deleted= DocumentManager::delete_document($_course,$chamiloPath,$base_work_dir); //deleted by Chamilo
  57. //$file->delete(addTrailingSlash(backslashToSlash($_GET['delete'])));//deleted by ajaxfilemanager
  58. }
  59. }
  60. else
  61. {
  62. $error=get_lang('ProtectFolder'); //From Chamilo to Ajaxfilemanager
  63. }
  64. }
  65. else
  66. {
  67. $file->delete(addTrailingSlash(backslashToSlash($_GET['delete'])));//deleted by ajaxfilemanager
  68. }
  69. //////end bridge to Chamilo
  70. $file->delete(addTrailingSlash(backslashToSlash($_GET['delete'])));
  71. }elseif(is_file($_GET['delete'])
  72. && isValidPattern(CONFIG_SYS_INC_FILE_PATTERN, getBaseName($_GET['delete']))
  73. && !isInvalidPattern(CONFIG_SYS_EXC_FILE_PATTERN, getBaseName($_GET['delete']))
  74. )
  75. {
  76. /////////////bridge to Chamilo by Juan Carlos Ra�a Trabado
  77. if(!empty($_course['path']))
  78. {
  79. //find path
  80. $mainPath='../../../../../../../courses/'.$_course['path'].'/document/';//get Chamilo
  81. $fullPath = $_GET['delete']; //get Ajaxfilemanager
  82. $chamiloPath = substr($fullPath, strlen($mainPath)-strlen($fullPath)-1);
  83. //find base_work_dir
  84. $course_dir = $_course['path']."/document";//get Chamilo
  85. $sys_course_path = api_get_path(SYS_COURSE_PATH);//get Chamilo
  86. $base_work_dir = $sys_course_path.$course_dir; // sample c:/xampp/htdocs/chamilo2009beta/courses/JUAN2009/document
  87. //delete file
  88. if(! $is_allowed_to_edit && DocumentManager::check_readonly($_course,api_get_user_id(),$chamiloPath))
  89. {
  90. $error=get_lang('CantDeleteReadonlyFiles'); //From Chamilo to Ajaxfilemanager
  91. }
  92. else
  93. {
  94. $deleted= DocumentManager::delete_document($_course,$chamiloPath,$base_work_dir); //deleted by Chamilo
  95. //$file->delete(($_GET['delete'])); // disabled deleted by ajaxfilemanager
  96. }
  97. }
  98. else
  99. {
  100. $file->delete(($_GET['delete']));//deleted by ajaxfilemanager
  101. }
  102. //////end bridge to Chamilo
  103. }
  104. }
  105. }else
  106. {
  107. if(!isset($_POST['selectedDoc']) || !is_array($_POST['selectedDoc']) || sizeof($_POST['selectedDoc']) < 1)
  108. {
  109. $error = ERR_NOT_FILE_SELECTED;
  110. }
  111. else
  112. {
  113. include_once(CLASS_FILE);
  114. $file = new file();
  115. foreach($_POST['selectedDoc'] as $doc)
  116. {
  117. if(file_exists($doc) && isUnderRoot($doc))
  118. {
  119. if(is_dir($doc)
  120. && isValidPattern(CONFIG_SYS_INC_DIR_PATTERN, $doc)
  121. && !isInvalidPattern(CONFIG_SYS_EXC_DIR_PATTERN, $doc))
  122. {
  123. /////////////bridge to Chamilo by Juan Carlos Ra�a Trabado
  124. if(!empty($_course['path']))
  125. {
  126. //find path
  127. $mainPath='../../../../../../../courses/'.$_course['path'].'/document/';//get Chamilo
  128. $fullPath = $doc; //get Ajaxfilemanager
  129. $chamiloPath = substr($fullPath, strlen($mainPath)-strlen($fullPath)-1,-1);
  130. //find base_work_dir
  131. $course_dir = $_course['path']."/document";//get Chamilo
  132. $sys_course_path = api_get_path(SYS_COURSE_PATH);//get Chamilo
  133. $base_work_dir = $sys_course_path.$course_dir; // sample c:/xampp/htdocs/chamilo2009beta/courses/JUAN2009/document
  134. //delete directory
  135. //check protect directories
  136. if ($chamiloPath!='/audio' && $chamiloPath!='/flash' && $chamiloPath!='/images' && $chamiloPath!='/shared_folder' && $chamiloPath!='/video')
  137. {
  138. if(! $is_allowed_to_edit && DocumentManager::check_readonly($_course,api_get_user_id(),$chamiloPath))
  139. {
  140. $error=get_lang('CantDeleteReadonlyFiles'); //From Chamilo to Ajaxfilemanager
  141. }
  142. else
  143. {
  144. $deleted= DocumentManager::delete_document($_course,$chamiloPath,$base_work_dir); //deleted by Chamilo
  145. //$file->delete(addTrailingSlash(backslashToSlash($doc))); // disabled deleted by ajaxfilemanager
  146. }
  147. }
  148. else
  149. {
  150. $error=get_lang('ProtectFolder'); //From Chamilo to Ajaxfilemanager
  151. }
  152. }
  153. else
  154. {
  155. $file->delete(addTrailingSlash(backslashToSlash($doc)));//deleted by ajaxfilemanager
  156. }
  157. //////end bridge to Chamilo
  158. }elseif(is_file($doc)
  159. && isValidPattern(CONFIG_SYS_INC_FILE_PATTERN, $doc)
  160. && !isInvalidPattern(CONFIG_SYS_EXC_FILE_PATTERN, $doc)
  161. )
  162. {
  163. /////////////bridge to Chamilo by Juan Carlos Ra�a Trabado
  164. if(!empty($_course['path']))
  165. {
  166. //find path
  167. $mainPath='../../../../../../../courses/'.$_course['path'].'/document/';//get Chamilo
  168. $fullPath = $doc; //get Ajaxfilemanager
  169. $chamiloPath = substr($fullPath, strlen($mainPath)-strlen($fullPath)-1);
  170. //find base_work_dir
  171. $course_dir = $_course['path']."/document";//get Chamilo
  172. $sys_course_path = api_get_path(SYS_COURSE_PATH);//get Chamilo
  173. $base_work_dir = $sys_course_path.$course_dir; // sample c:/xampp/htdocs/chamilo2009beta/courses/JUAN2009/document
  174. //delete file
  175. if(! $is_allowed_to_edit && DocumentManager::check_readonly($_course,api_get_user_id(),$chamiloPath))
  176. {
  177. $error=get_lang('CantDeleteReadonlyFiles'); //From Chamilo to Ajaxfilemanager
  178. }
  179. else
  180. {
  181. $deleted= DocumentManager::delete_document($_course,$chamiloPath,$base_work_dir); //deleted by Chamilo
  182. //$file->delete($doc); // disabled deleted by ajaxfilemanager
  183. }
  184. }
  185. else
  186. {
  187. $file->delete($doc); //deleted by ajaxfilemanager
  188. }
  189. //////end bridge to Chamilo
  190. }
  191. }
  192. }
  193. }
  194. }
  195. echo "{error:'" . $error . "'}";
  196. ?>