From 02186b817d5c4f11dd4af8ad2bf53df1e7ee5692 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Thu, 8 Sep 2011 11:58:45 +0200 Subject: [PATCH] Allowing anonym user to see documents if course is set to "world" visibility + hidden briefcase icon + fixing local.inc.php see #3865 --- main/document/document.inc.php | 3 ++- main/inc/lib/document.lib.php | 11 ++++---- main/inc/lib/main_api.lib.php | 2 +- main/inc/local.inc.php | 46 +++++++++++++++++----------------- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/main/document/document.inc.php b/main/document/document.inc.php index 7769e394fa..d30e8cc6b7 100755 --- a/main/document/document.inc.php +++ b/main/document/document.inc.php @@ -220,7 +220,8 @@ function create_document_link($document_data, $show_as_icon = false, $counter = } //copy files to users myfiles - if (api_get_setting('users_copy_files') == 'true' && api_get_user_id() != 0){ + + if (api_get_setting('users_copy_files') == 'true' && !api_is_anonymous()){ $copy_myfiles_link = ($filetype == 'file') ? api_get_self().'?'.api_get_cidreq().'&curdirpath='.$curdirpath.'&action=copytomyfiles&id='.$url_path.$req_gid :api_get_self().'?'.api_get_cidreq(); if ($filetype == 'file') { diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index 10ce53f0d9..afbb1a4534 100755 --- a/main/inc/lib/document.lib.php +++ b/main/inc/lib/document.lib.php @@ -625,7 +625,7 @@ return 'application/octet-stream'; //Checking parents visibility $final_document_data = array(); foreach($document_data as $row) { - $is_visible = DocumentManager::check_visibility_tree($row['id'], $_course['code'], $current_session_id, api_get_user_id()); + $is_visible = DocumentManager::check_visibility_tree($row['id'], $_course['code'], $current_session_id, api_get_user_id()); if ($is_visible) { $final_document_data[$row['id']]=$row; } @@ -1203,17 +1203,16 @@ return 'application/octet-stream'; if (CourseManager::is_user_subscribed_in_course($user_id, $course_info['code']) || api_is_platform_admin()) { $user_in_course = true; } + //Check if course is open then we can consider that the student is regitered to the course + if (isset($course_info) && in_array($course_info['visibility'], array(2, 3))) { + $user_in_course = true; + } } else { $user_status = SessionManager::get_user_status_in_session($user_id, $course_info['code'], $session_id); if (in_array($user_status, array('0', '6'))) { //is true if is an student or a coach $user_in_course = true; } - - //Check if course is open then we can consider that the student is regitered to the course - if (isset($course_info) && $course_info['visibility'] == 3) { - $user_in_course = true; - } } diff --git a/main/inc/lib/main_api.lib.php b/main/inc/lib/main_api.lib.php index 8a025b9734..a11d64e5b3 100755 --- a/main/inc/lib/main_api.lib.php +++ b/main/inc/lib/main_api.lib.php @@ -719,7 +719,7 @@ function api_valid_email($address) { function api_protect_course_script($print_headers = false) { global $is_allowed_in_course; $course_info = api_get_course_info(); - if (isset($course_info) && $course_info['visibility'] == 3) { + if (isset($course_info) && in_array($course_info['visibility'], array(2,3))) { return true; } if (!$is_allowed_in_course) { diff --git a/main/inc/local.inc.php b/main/inc/local.inc.php index 6c0f18762d..414b4437c2 100755 --- a/main/inc/local.inc.php +++ b/main/inc/local.inc.php @@ -858,29 +858,29 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses $result = Database::query($sql); $row = Database::store_result($result); - - if ($row[0]['id_coach']==$_user['user_id']) { - $_courseUser['role'] = 'Professor'; - $is_courseMember = true; - $is_courseTutor = true; - $is_courseCoach = true; - $is_sessionAdmin = false; - - if (api_get_setting('extend_rights_for_coach')=='true') { - $is_courseAdmin = true; - } else { - $is_courseAdmin = false; - } - - api_session_register('_courseUser'); - } elseif ($row[0]['session_admin_id']==$_user['user_id']) { - $_courseUser['role'] = 'Professor'; - $is_courseMember = false; - $is_courseTutor = false; - $is_courseAdmin = false; - $is_courseCoach = false; - $is_sessionAdmin = true; - } else { + if (isset($row[0])) { + if ($row[0]['id_coach']==$_user['user_id']) { + $_courseUser['role'] = 'Professor'; + $is_courseMember = true; + $is_courseTutor = true; + $is_courseCoach = true; + $is_sessionAdmin = false; + + if (api_get_setting('extend_rights_for_coach')=='true') { + $is_courseAdmin = true; + } else { + $is_courseAdmin = false; + } + api_session_register('_courseUser'); + } elseif ($row[0]['session_admin_id']==$_user['user_id']) { + $_courseUser['role'] = 'Professor'; + $is_courseMember = false; + $is_courseTutor = false; + $is_courseAdmin = false; + $is_courseCoach = false; + $is_sessionAdmin = true; + } + } else { // Check if the current user is the course coach $sql = "SELECT 1 FROM ".$tbl_session_course_user."