Fix problems preventing students from viewing the documents and dirs in a session - refs BT#7128

1.9.x
Yannick Warnier 12 years ago
parent 079ae38d58
commit e3c52deb25
  1. 46
      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

Loading…
Cancel
Save