before/after days are also affected by the session-course-teachers

See BT#7740
1.9.x
Julio Montoya 11 years ago
parent 0213a5828e
commit eef69336ad
  1. 13
      main/inc/lib/main_api.lib.php
  2. 39
      main/inc/lib/usermanager.lib.php

@ -1985,10 +1985,17 @@ function api_get_session_info($session_id) {
* @param int $session_id
* @param string $course_code
* @param bool $ignore_visibility_for_admins
* @return int 0 = session still available, SESSION_VISIBLE_READ_ONLY = 1, SESSION_VISIBLE = 2, SESSION_INVISIBLE = 3
* @return int
* 0 = session still available,
* SESSION_VISIBLE_READ_ONLY = 1,
* SESSION_VISIBLE = 2,
* SESSION_INVISIBLE = 3
*/
function api_get_session_visibility($session_id, $course_code = null, $ignore_visibility_for_admins = true)
{
function api_get_session_visibility(
$session_id,
$course_code = null,
$ignore_visibility_for_admins = true
) {
// Means that the session is still available.
$visibility = 0;

@ -2335,8 +2335,11 @@ class UserManager
* @return array list of statuses [session_category][session_id]
* @todo ensure multiple access urls are managed correctly
*/
public static function get_sessions_by_category($user_id, $is_time_over = false, $ignore_visibility_for_admins = false)
{
public static function get_sessions_by_category(
$user_id,
$is_time_over = false,
$ignore_visibility_for_admins = false
) {
// Database Table Definitions
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -2395,8 +2398,35 @@ class UserManager
$session_id = $row['id'];
$courseList = UserManager::get_courses_list_by_session(
$user_id,
$row['id']
);
// General coach session visibility.
$visibility = api_get_session_visibility(
$session_id,
null,
$ignore_visibility_for_admins
);
// Course Coach session visibility.
$atLeastOneCourseIsVisible = false;
foreach ($courseList as $course) {
// Checking session visibility
$visibility = api_get_session_visibility($session_id, null, $ignore_visibility_for_admins);
$visibility = api_get_session_visibility(
$session_id,
$course['code'],
$ignore_visibility_for_admins
);
if ($visibility != SESSION_INVISIBLE) {
$atLeastOneCourseIsVisible = true;
}
}
if ($atLeastOneCourseIsVisible) {
$visibility = $atLeastOneCourseIsVisible;
}
switch ($visibility) {
case SESSION_VISIBLE_READ_ONLY:
@ -2413,9 +2443,10 @@ class UserManager
$categories[$row['session_category_id']]['sessions'][$row['id']]['date_end'] = $row['date_end'];
$categories[$row['session_category_id']]['sessions'][$row['id']]['nb_days_access_before_beginning'] = $row['nb_days_access_before_beginning'];
$categories[$row['session_category_id']]['sessions'][$row['id']]['nb_days_access_after_end'] = $row['nb_days_access_after_end'];
$categories[$row['session_category_id']]['sessions'][$row['id']]['courses'] = UserManager::get_courses_list_by_session($user_id, $row['id']);
$categories[$row['session_category_id']]['sessions'][$row['id']]['courses'] = $courseList;
}
}
return $categories;
}

Loading…
Cancel
Save