Переглянути джерело

Allowing anonym user to see documents if course is set to "world" visibility + hidden briefcase icon + fixing local.inc.php see #3865

Julio Montoya 13 роки тому
батько
коміт
02186b817d

+ 2 - 1
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') {

+ 5 - 6
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;
-    		}	
     	}
     	
     	

+ 1 - 1
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) {

+ 23 - 23
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."