|
|
|
@ -1,4 +1,5 @@ |
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
/* For licensing terms, see /license.txt */ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -6,55 +7,60 @@ |
|
|
|
|
* Html files are parsed to fix a few problems with URLs, |
|
|
|
|
* but this code will hopefully be replaced soon by an Apache URL |
|
|
|
|
* rewrite mechanism. |
|
|
|
|
* |
|
|
|
|
* @package chamilo.work |
|
|
|
|
*/ |
|
|
|
|
require_once __DIR__.'/../inc/global.inc.php'; |
|
|
|
|
require_once 'work.lib.php'; |
|
|
|
|
|
|
|
|
|
// Course protection |
|
|
|
|
api_protect_course_script(true); |
|
|
|
|
|
|
|
|
|
$commentId = isset($_GET['comment_id']) ? intval($_GET['comment_id']) : null; |
|
|
|
|
$commentId = isset($_GET['comment_id']) ? (int) $_GET['comment_id'] : null; |
|
|
|
|
if (empty($commentId)) { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|
} |
|
|
|
|
$workData = getWorkComment($commentId); |
|
|
|
|
$courseInfo = api_get_course_info(); |
|
|
|
|
|
|
|
|
|
if (!empty($workData)) { |
|
|
|
|
if (empty($workData['file_path']) || |
|
|
|
|
(isset($workData['file_path']) && !file_exists($workData['file_path'])) |
|
|
|
|
) { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|
} |
|
|
|
|
if (empty($workData)) { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$work = get_work_data_by_id($workData['work_id']); |
|
|
|
|
if (empty($workData['file_path']) || |
|
|
|
|
(isset($workData['file_path']) && !file_exists($workData['file_path'])) |
|
|
|
|
) { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$work = get_work_data_by_id($workData['work_id']); |
|
|
|
|
|
|
|
|
|
protectWork($courseInfo, $work['parent_id']); |
|
|
|
|
|
|
|
|
|
protectWork($courseInfo, $work['parent_id']); |
|
|
|
|
$userHasAccess = api_is_coach() || |
|
|
|
|
api_is_allowed_to_edit(false, false, true) || |
|
|
|
|
user_is_author($workData['work_id']); |
|
|
|
|
|
|
|
|
|
$userHasAccess = api_is_coach() || |
|
|
|
|
api_is_allowed_to_edit(false, false, true) || |
|
|
|
|
user_is_author($workData['work_id']); |
|
|
|
|
$allowBaseCourseTeacher = api_get_configuration_value('assignment_base_course_teacher_access_to_all_session'); |
|
|
|
|
if (false === $userHasAccess && $allowBaseCourseTeacher) { |
|
|
|
|
// Check if user is base course teacher. |
|
|
|
|
if (CourseManager::is_course_teacher(api_get_user_id(), $courseInfo['code'])) { |
|
|
|
|
$userHasAccess = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($userHasAccess || |
|
|
|
|
$courseInfo['show_score'] == 0 && |
|
|
|
|
$work['active'] == 1 && |
|
|
|
|
$work['accepted'] == 1 |
|
|
|
|
if ($userHasAccess || |
|
|
|
|
$courseInfo['show_score'] == 0 && |
|
|
|
|
$work['active'] == 1 && |
|
|
|
|
$work['accepted'] == 1 |
|
|
|
|
) { |
|
|
|
|
if (Security::check_abs_path( |
|
|
|
|
$workData['file_path'], |
|
|
|
|
api_get_path(SYS_COURSE_PATH).api_get_course_path().'/' |
|
|
|
|
) |
|
|
|
|
) { |
|
|
|
|
if (Security::check_abs_path( |
|
|
|
|
DocumentManager::file_send_for_download( |
|
|
|
|
$workData['file_path'], |
|
|
|
|
api_get_path(SYS_COURSE_PATH).api_get_course_path().'/' |
|
|
|
|
) |
|
|
|
|
) { |
|
|
|
|
DocumentManager::file_send_for_download( |
|
|
|
|
$workData['file_path'], |
|
|
|
|
true, |
|
|
|
|
$workData['file_name_to_show'] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|
true, |
|
|
|
|
$workData['file_name_to_show'] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|