document.ajax.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Responses to AJAX calls for the document upload
  5. */
  6. require_once '../global.inc.php';
  7. require_once api_get_path(LIBRARY_PATH).'document.lib.php';
  8. $action = $_REQUEST['a'];
  9. switch($action) {
  10. case 'upload_file':
  11. api_protect_course_script(true);
  12. //User access same as upload.php
  13. $is_allowed_to_edit = api_is_allowed_to_edit(null, true);
  14. // This needs cleaning!
  15. if (api_get_group_id()) {
  16. if ($is_allowed_to_edit || GroupManager::is_user_in_group(api_get_user_id(), api_get_group_id())) { // Only courseadmin or group members allowed
  17. } else {
  18. exit;
  19. }
  20. } elseif ($is_allowed_to_edit || is_my_shared_folder(api_get_user_id(), $_POST['curdirpath'], api_get_session_id())) {
  21. } else { // No course admin and no group member...
  22. exit;
  23. }
  24. if (!empty($_FILES)) {
  25. require_once api_get_path(LIBRARY_PATH).'fileDisplay.lib.php';
  26. $file = $_FILES['file'];
  27. $result = DocumentManager::upload_document($_FILES, $_POST['curdirpath'], $file['name'], '', 0, 'overwrite', false, false);
  28. $json = array();
  29. $json['name'] = Display::url(api_htmlentities($file['name']), api_htmlentities($result['url']), array('target'=>'_blank'));
  30. $json['type'] = api_htmlentities($file['type']);
  31. $json['size'] = format_file_size($file['size']);
  32. if (!empty($result) && is_array($result)) {
  33. $json['result'] = Display::return_icon('accept.png', get_lang('Uploaded'));
  34. } else {
  35. $json['result'] = Display::return_icon('exclamation.png', get_lang('Error'));
  36. }
  37. echo json_encode($json);
  38. }
  39. break;
  40. case 'document_preview':
  41. $course_info = api_get_course_info_by_id($_REQUEST['course_id']);
  42. if (!empty($course_info) && is_array($course_info)) {
  43. echo DocumentManager::get_document_preview($course_info, false, '_blank', $_REQUEST['session_id']);
  44. }
  45. break;
  46. }
  47. exit;