From e3c52deb25851d52e01bdab18c6d715d79b35871 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Tue, 17 Dec 2013 20:19:02 -0500 Subject: [PATCH] Fix problems preventing students from viewing the documents and dirs in a session - refs BT#7128 --- main/inc/lib/document.lib.php | 46 +++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index 6670da9907..ad6d13b478 100644 --- a/main/inc/lib/document.lib.php +++ b/main/inc/lib/document.lib.php @@ -505,26 +505,27 @@ class DocumentManager // Condition for search (get ALL folders and documents) - $sql = "SELECT docs.id, - docs.filetype, - docs.path, - docs.title, - docs.comment, - docs.size, - docs.readonly, - docs.session_id, - last.id_session item_property_session_id, - last.lastedit_date, - last.visibility, - last.insert_user_id - FROM $TABLE_ITEMPROPERTY AS last INNER JOIN $TABLE_DOCUMENT AS docs - ON (docs.id = last.ref AND last.tool = '".TOOL_DOCUMENT."' AND - docs.c_id = {$_course['real_id']} AND last.c_id = {$_course['real_id']}) - WHERE - docs.path LIKE '" . $path . $added_slash . "%' AND - docs.path NOT LIKE '" . $path . $added_slash . "%/%' AND - ".$to_field." = ".$to_value." AND - last.visibility ".$visibility_bit.$condition_session; + $sql = "SELECT docs.id, " + ." docs.filetype, " + ." docs.path, " + ." docs.title, " + ." docs.comment, " + ." docs.size, " + ." docs.readonly, " + ." docs.session_id, " + ." last.id_session item_property_session_id, " + ." last.lastedit_date, " + ." last.visibility, " + ." last.insert_user_id " + ." FROM $TABLE_ITEMPROPERTY AS last INNER JOIN $TABLE_DOCUMENT AS docs " + ." ON (docs.id = last.ref AND last.tool = '".TOOL_DOCUMENT."' AND " + ." docs.c_id = {$_course['real_id']} AND last.c_id = {$_course['real_id']}) " + ." WHERE " + ." docs.path LIKE '" . $path . $added_slash . "%' AND " + ." docs.path NOT LIKE '" . $path . $added_slash . "%/%' AND " + .$to_field." = ".$to_value." AND " + ." last.visibility ".$visibility_bit.$condition_session; + $result = Database::query($sql); $doc_list = array(); @@ -3165,7 +3166,10 @@ class DocumentManager */ public static function check_visibility_tree($doc_id, $course_code, $session_id, $user_id) { - $document_data = self::get_document_data_by_id($doc_id, $course_code); + $document_data = self::get_document_data_by_id($doc_id, $course_code, null, $session_id); + if ($session_id != 0 && !$document_data) { + $document_data = self::get_document_data_by_id($doc_id, $course_code, null, 0); + } if (!empty($document_data)) { //if admin or course teacher, allow anyway