Drh can enter to a course as an student see BT#6770 a setting in configuration must be set before.

1.9.x
Julio Montoya 12 years ago
parent c86f3d5ec4
commit cc5b2ec93b
  1. 44
      main/inc/lib/sessionmanager.lib.php
  2. 30
      main/inc/local.inc.php

@ -1702,6 +1702,50 @@ class SessionManager
return $affected_rows;
}
/**
* @param int $userId
* @param int $sessionId
* @return array
*/
public static function getSessionFollowedByDrh($userId, $sessionId)
{
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$userId = intval($userId);
$sessionId = intval($sessionId);
$select = " SELECT * ";
if (api_is_multiple_url_enabled()) {
$sql = " $select FROM $tbl_session s
INNER JOIN $tbl_session_rel_user sru ON (sru.id_session = s.id)
LEFT JOIN $tbl_session_rel_access_url a ON (s.id = a.session_id)
WHERE
sru.id_user = '$userId' AND
sru.id_session = '$sessionId' AND
sru.relation_type = '".SESSION_RELATION_TYPE_RRHH."' AND
access_url_id = ".api_get_current_access_url_id()."
";
} else {
$sql = "$select FROM $tbl_session s
INNER JOIN $tbl_session_rel_user sru
ON
sru.id_session = s.id AND
sru.id_user = '$userId' AND
sru.id_session = '$sessionId' AND
sru.relation_type = '".SESSION_RELATION_TYPE_RRHH."'
";
}
$result = Database::query($sql);
if (Database::num_rows($result)) {
$row = Database::fetch_array($result, 'ASSOC');
$row['course_list'] = self::get_course_list_by_session_id($sessionId);
return $row;
}
return array();
}
/**
* Get sessions followed by human resources manager
* @param int Human resources manager or Session admin id

@ -964,18 +964,18 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset))
Session::write('_courseUser',$_courseUser);
}
//We are in a session course? Check session permissions
// We are in a session course? Check session permissions
if (!empty($session_id)) {
//I'm not the teacher of the course
// I'm not the teacher of the course
if ($is_courseAdmin == false) {
// this user has no status related to this course
// This user has no status related to this course
// The user is subscribed in a session? The user is a Session coach a Session admin ?
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
//Session coach, session admin, course coach admin
// Session coach, session admin or course coach admin
$sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user
FROM $tbl_session session, $tbl_session_course_user session_rcru
WHERE session_rcru.id_session = session.id AND
@ -986,9 +986,9 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset))
";
$result = Database::query($sql);
$row = Database::store_result($result);
$row = Database::store_result($result);
//Am I a session admin?
// Am I a session admin?
if (isset($row) && isset($row[0]) && $row[0]['session_admin_id'] == $user_id) {
$_courseUser['role'] = 'Professor';
$is_courseMember = false;
@ -1005,6 +1005,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset))
"AND session.id_coach = $user_id ".
"AND sc.course_code = '$_cid'";
$result = Database::query($sql);
if (Database::num_rows($result)) {
$_courseUser['role'] = 'Professor';
$is_courseMember = true;
@ -1063,7 +1064,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset))
break;
}
} else {
//unregister user
// Unregister user
$is_courseMember = false;
$is_courseTutor = false;
$is_courseAdmin = false;
@ -1073,6 +1074,21 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset))
}
}
}
// Drh can enter to a course as an student see BT#6770
if (api_drh_can_access_all_session_content()) {
$sessionInfo = SessionManager::getSessionFollowedByDrh($user_id, $session_id);
if (!empty($sessionInfo) && !empty($sessionInfo['course_list'])) {
if (isset($sessionInfo['course_list'][$_course['real_id']])) {
$_courseUser['role'] = '';
$is_courseMember = true;
$is_courseTutor = false;
$is_courseCoach = false;
$is_sessionAdmin = false;
}
}
}
}
//If I'm the admin platform i'm a teacher of the course

Loading…
Cancel
Save