diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index 7d9ea11195..4e41d88e80 100755 --- a/main/inc/lib/document.lib.php +++ b/main/inc/lib/document.lib.php @@ -3223,7 +3223,7 @@ class DocumentManager if (CourseManager::is_user_subscribed_in_course($user_id, $course_info['code'])) { $user_in_course = true; } - //Check if course is open then we can consider that the student is regitered to the course + // Check if course is open then we can consider that the student is registered to the course if (isset($course_info) && in_array($course_info['visibility'], array(2, 3))) { $user_in_course = true; } @@ -3261,6 +3261,13 @@ class DocumentManager $folderCondition = " AND docs.path LIKE '/%' "; + if (!api_is_allowed_to_edit()) { + $protectedFolders = self::getProtectedFolderFromStudent(); + foreach ($protectedFolders as $folder) { + $folderCondition .= " AND docs.path NOT LIKE '$folder' "; + } + } + if ($folderId !== false) { $parentData = self::get_document_data_by_id($folderId, $course_info['code']); if (!empty($parentData)) { @@ -3443,7 +3450,6 @@ class DocumentManager }); } } - } "; } @@ -3702,10 +3708,10 @@ class DocumentManager $overwrite_url ); } - } } } + return $return; } @@ -4178,9 +4184,9 @@ class DocumentManager /** * @return array */ - static function get_system_folders() + public static function get_system_folders() { - $system_folders = array( + return array( '/certificates', '/HotPotatoes_files', '/chat_files', @@ -4191,7 +4197,20 @@ class DocumentManager '/shared_folder', '/learning_path' ); - return $system_folders; + } + + /** + * @return array + */ + public static function getProtectedFolderFromStudent() + { + return array( + '/certificates', + '/HotPotatoes_files', + '/chat_files', + '/shared_folder', + '/learning_path' + ); } /** diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index b1f6ab52d0..9bd8c45e67 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -3833,7 +3833,7 @@ class SessionManager if ($my_session_result === false) { // Creating a session. - $sql_session = "INSERT IGNORE INTO $tbl_session SET + $sql = "INSERT IGNORE INTO $tbl_session SET name = '$session_name', id_coach = '$coach_id', date_start = '$date_start', @@ -3841,7 +3841,7 @@ class SessionManager visibility = '$visibilityAfterExpirationPerSession', session_category_id = '$session_category_id' " . $extraParameters . $extraSessionParameters; - Database::query($sql_session); + Database::query($sql); // We get the last insert id. $my_session_result = SessionManager::get_session_by_name($enreg['SessionName']); @@ -3903,16 +3903,32 @@ class SessionManager if (!empty($enreg['SessionName'])) { $params['name'] = $enreg['SessionName']; } - Database::update($tbl_session, $params, array('id = ?' => $sessionId)); $session_id = $sessionId; } else { - Database::update($tbl_session, $params, array("name = '?' " => $enreg['SessionName'])); - $row = Database::query("SELECT id FROM $tbl_session WHERE name = '$session_name'"); list($session_id) = Database::fetch_array($row); } if ($session_id) { + $sessionInfo = api_get_session_info($session_id); + if (!empty($daysCoachAccessBeforeBeginning) && !empty($daysCoachAccessAfterBeginning)) { + if (empty($sessionInfo['nb_days_access_before_beginning']) || + (!empty($sessionInfo['nb_days_access_before_beginning']) && + $sessionInfo['nb_days_access_before_beginning'] < $daysCoachAccessBeforeBeginning) + ) { + $params['nb_days_access_before_beginning'] = intval($daysCoachAccessBeforeBeginning); + } + + if (empty($sessionInfo['nb_days_access_after_end']) || + (!empty($sessionInfo['nb_days_access_after_end']) && + $sessionInfo['nb_days_access_after_end'] < $daysCoachAccessAfterBeginning) + ) { + $params['nb_days_access_after_end'] = intval($daysCoachAccessAfterBeginning); + } + } + + Database::update($tbl_session, $params, array('id = ?' => $session_id)); + foreach ($enreg as $key => $value) { if (substr($key, 0, 6) == 'extra_') { //an extra field self::update_session_extra_field_value($session_id, substr($key, 6), $value); @@ -4196,6 +4212,7 @@ class SessionManager // Adding Students, updating relationship "Session - Course - User". $course_users = array_filter($course_users); + if (!empty($course_users)) { foreach ($course_users as $user) { $user_id = UserManager::get_user_id_from_username($user);