|
|
|
|
@ -1101,6 +1101,7 @@ $is_courseCoach = false; //course coach |
|
|
|
|
$is_courseAdmin = false; |
|
|
|
|
$is_courseTutor = false; |
|
|
|
|
$is_courseMember = false; |
|
|
|
|
$bossHasAccess = false; |
|
|
|
|
|
|
|
|
|
if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
if (isset($_cid) && $_cid) { |
|
|
|
|
@ -1190,7 +1191,6 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (isset($user_id) && $user_id && isset($_real_cid) && $_real_cid) { |
|
|
|
|
|
|
|
|
|
//Check if user is subscribed in a course |
|
|
|
|
$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); |
|
|
|
|
$sql = "SELECT * FROM $course_user_table |
|
|
|
|
@ -1209,6 +1209,23 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
$is_courseMember = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Ofaj - student boss can access course if he follows the user |
|
|
|
|
if (isset($_user) && isset($_user['status']) && $_user['status'] == STUDENT_BOSS) { |
|
|
|
|
if (isset($_REQUEST['log_as_user'])) { |
|
|
|
|
$isBoss = UserManager::userIsBossOfStudent($_user['user_id'], $_REQUEST['log_as_user']); |
|
|
|
|
$isUserFollowedInCourse = CourseManager::is_user_subscribed_in_course( |
|
|
|
|
$_REQUEST['log_as_user'], |
|
|
|
|
$_course['code'], |
|
|
|
|
false |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ($isBoss && $isUserFollowedInCourse) { |
|
|
|
|
$is_courseMember = true; |
|
|
|
|
$bossHasAccess = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// We are in a session course? Check session permissions |
|
|
|
|
if (!empty($session_id)) { |
|
|
|
|
// I'm not the teacher of the course |
|
|
|
|
@ -1236,19 +1253,22 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
|
|
|
|
|
// Am I a session admin? |
|
|
|
|
if (isset($row) && isset($row[0]) && $row[0]['session_admin_id'] == $user_id) { |
|
|
|
|
$is_courseMember = false; |
|
|
|
|
$is_courseTutor = false; |
|
|
|
|
$is_courseAdmin = false; |
|
|
|
|
$is_courseCoach = false; |
|
|
|
|
$is_sessionAdmin = true; |
|
|
|
|
$is_courseMember = false; |
|
|
|
|
$is_courseTutor = false; |
|
|
|
|
$is_courseAdmin = false; |
|
|
|
|
$is_courseCoach = false; |
|
|
|
|
$is_sessionAdmin = true; |
|
|
|
|
} else { |
|
|
|
|
// Am I a session coach for this session? |
|
|
|
|
$sql = "SELECT session.id, session.id_coach FROM $tbl_session session |
|
|
|
|
$sql = "SELECT session.id, session.id_coach |
|
|
|
|
FROM $tbl_session session |
|
|
|
|
INNER JOIN $tbl_session_course sc |
|
|
|
|
ON sc.session_id = session.id |
|
|
|
|
WHERE session.id = $session_id |
|
|
|
|
AND session.id_coach = $user_id |
|
|
|
|
AND sc.c_id = '$_real_cid'"; |
|
|
|
|
WHERE |
|
|
|
|
session.id = $session_id AND |
|
|
|
|
session.id_coach = $user_id AND |
|
|
|
|
sc.c_id = '$_real_cid' |
|
|
|
|
"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
|
|
|
|
|
if (Database::num_rows($result)) { |
|
|
|
|
@ -1310,6 +1330,26 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
$is_sessionAdmin = false; |
|
|
|
|
$is_courseCoach = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Boss validation |
|
|
|
|
if (isset($_REQUEST['log_as_user'])) { |
|
|
|
|
$isBoss = UserManager::userIsBossOfStudent($user_id, $_REQUEST['log_as_user']); |
|
|
|
|
$isUserFollowedInCourse = CourseManager::is_user_subscribed_in_course( |
|
|
|
|
$_REQUEST['log_as_user'], |
|
|
|
|
$_course['code'], |
|
|
|
|
true, |
|
|
|
|
$session_id |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ($isBoss && $isUserFollowedInCourse) { |
|
|
|
|
$is_courseMember = true; |
|
|
|
|
$is_courseTutor = false; |
|
|
|
|
$is_courseAdmin = false; |
|
|
|
|
$is_courseCoach = false; |
|
|
|
|
$is_sessionAdmin = false; |
|
|
|
|
$bossHasAccess = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -1345,7 +1385,6 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
$is_allowed_in_course = false; |
|
|
|
|
|
|
|
|
|
if (isset($_course) && isset($_course['visibility'])) { |
|
|
|
|
|
|
|
|
|
switch ($_course['visibility']) { |
|
|
|
|
case COURSE_VISIBILITY_OPEN_WORLD: //3 |
|
|
|
|
$is_allowed_in_course = true; |
|
|
|
|
@ -1357,7 +1396,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { |
|
|
|
|
$courseCode, |
|
|
|
|
$session_id |
|
|
|
|
); |
|
|
|
|
if (isset($user_id) && ($is_platformAdmin || $isUserSubscribedInCourse === true) && !api_is_anonymous($user_id)) { |
|
|
|
|
if (isset($user_id) && ($is_platformAdmin || $isUserSubscribedInCourse === true || $bossHasAccess) && !api_is_anonymous($user_id)) { |
|
|
|
|
$is_allowed_in_course = true; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
|