Fix bad condition that sets all documents to invisible see BT#9255

1.9.x
Julio Montoya 11 years ago
parent ba64c48b06
commit b6b54d5bc2
  1. 38
      main/inc/lib/document.lib.php
  2. 4
      main/inc/lib/main_api.lib.php

@ -1646,10 +1646,15 @@ class DocumentManager
$course_info['code'],
$session_id
);
if (in_array($user_status, array('0', '2', '6'))) {
//is true if is an student, course session teacher or coach
$user_in_course = true;
}
if (api_is_platform_admin()) {
$user_in_course = true;
}
}
// 4. Checking document visibility (i'm repeating the code in order to be more clear when reading ) - jm
@ -1657,7 +1662,6 @@ class DocumentManager
if ($user_in_course) {
// 4.1 Checking document visibility for a Course
if ($session_id == 0) {
$item_info = api_get_item_property_info($course_info['real_id'], 'document', $doc_id, 0);
@ -1678,6 +1682,7 @@ class DocumentManager
$doc_id,
0
);
$item_info_in_session = api_get_item_property_info(
$course_info['real_id'],
'document',
@ -1928,16 +1933,16 @@ class DocumentManager
/**
* Create directory certificate
* @param string $course_id The course code
* @param string $courseCode
* @return void()
*/
public static function create_directory_certificate_in_course($course_id)
public static function create_directory_certificate_in_course($courseCode)
{
$course_info = api_get_course_info($course_id);
if (!empty($course_info)) {
$courseInfo = api_get_course_info($courseCode);
if (!empty($courseInfo)) {
$to_group_id = 0;
$to_user_id = null;
$course_dir = $course_info['path'] . "/document/";
$course_dir = $courseInfo['path'] . "/document/";
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$base_work_dir = $sys_course_path . $course_dir;
$base_work_dir_test = $base_work_dir . 'certificates';
@ -1947,7 +1952,7 @@ class DocumentManager
if (!is_dir($base_work_dir_test)) {
create_unexisting_directory(
$course_info,
$courseInfo,
api_get_user_id(),
api_get_session_id(),
$to_group_id,
@ -1956,14 +1961,17 @@ class DocumentManager
$dir_name,
$post_dir_name
);
$update_id = self::get_document_id_of_directory_certificate();
api_item_property_update(
$course_info,
TOOL_DOCUMENT,
$update_id,
$visibility_command,
api_get_user_id()
);
$id = self::get_document_id_of_directory_certificate();
if (!empty($id)) {
api_item_property_update(
$courseInfo,
TOOL_DOCUMENT,
$id,
$visibility_command,
api_get_user_id()
);
}
}
}
}

@ -3391,7 +3391,8 @@ function api_item_property_update(
$filter = " c_id = $course_id AND tool='$tool' AND ref='$item_id' $condition_session ";
if ($item_id == '*') {
// @deprecated this call '*'
if ($item_id === '*') {
// For all (not deleted) items of the tool
$filter = " c_id = $course_id AND tool = '$tool' AND visibility<>'2' $condition_session";
}
@ -3498,6 +3499,7 @@ function api_item_property_update(
tool = '$tool' AND
ref = '$item_id' AND
id_session = '$session_id'";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {
$sql = "UPDATE $TABLE_ITEMPROPERTY

Loading…
Cancel
Save