Minor cleaning some code

skala
Julio Montoya 14 years ago
parent fc593248a7
commit e07dd23f36
  1. 294
      main/inc/local.inc.php

@ -865,48 +865,45 @@ if (isset($cidReset) && $cidReset) {
/* COURSE / USER REL. INIT */ /* COURSE / USER REL. INIT */
$session_id = api_get_session_id(); $session_id = api_get_session_id();
$user_id = $_user['user_id'];
if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // session data refresh requested //Course permissions
if (isset($_user['user_id']) && $_user['user_id'] && isset($_cid) && $_cid) { // have keys to search data $is_courseAdmin = false; //course teacher
if (api_get_setting('use_session_mode') != 'true') { $is_courseTutor = false; //course teacher - some rights
$is_courseMember = false; //course student
$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT * FROM $course_user_table
WHERE user_id = '".$_user['user_id']."' AND relation_type <> ".COURSE_RELATION_TYPE_RRHH."
AND course_code = '$cidReq'";
$result = Database::query($sql); //Session permisions
$is_sessionAdmin = false;
if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
// session data refresh requested
if (isset($user_id) && $user_id && isset($_cid) && $_cid) { // have keys to search data
//Session is OFF
$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT * FROM $course_user_table
WHERE user_id = '".$user_id."' AND relation_type <> ".COURSE_RELATION_TYPE_RRHH."
AND course_code = '$cidReq'";
$result = Database::query($sql);
if (api_get_setting('use_session_mode') != 'true') {
//Session is OFF
if (Database::num_rows($result) > 0) { // this user have a recorded state for this course if (Database::num_rows($result) > 0) { // this user have a recorded state for this course
$cuData = Database::fetch_array($result); $cuData = Database::fetch_array($result);
$is_courseMember = true;
$is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 );
$is_courseAdmin = (bool) ($cuData['status'] == 1 ); $is_courseAdmin = (bool) ($cuData['status'] == 1 );
$is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 );
api_session_register('_courseUser'); $is_courseMember = true;
} else { // this user has no status related to this course // api_session_register('_courseUser'); // @todo seems to be empty
$is_courseMember = false; }
$is_courseAdmin = false;
$is_courseTutor = false;
}
$is_courseAdmin = (bool) ($is_courseAdmin || $is_platformAdmin);
} else { } else {
//Session is ON
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); if (Database::num_rows($result) > 0) {
// this user have a recorded state for this course
$sql = "SELECT * FROM ".$tbl_course_user." $cuData = Database::fetch_array($result);
WHERE user_id = '".$_user['user_id']."' AND
relation_type<>".COURSE_RELATION_TYPE_RRHH." AND
course_code = '$cidReq'";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) { // this user have a recorded state for this course
$cuData = Database::fetch_array($result);
//Checking if the user filled the course legal agreement
if ($_course['activate_legal'] == 1 && !api_is_platform_admin()) { if ($_course['activate_legal'] == 1 && !api_is_platform_admin()) {
$user_is_subscribed = CourseManager::is_user_accepted_legal($_user['user_id'], $_course['id'], $session_id); $user_is_subscribed = CourseManager::is_user_accepted_legal($_user['user_id'], $_course['id'], $session_id);
if (!$user_is_subscribed) { if (!$user_is_subscribed) {
@ -915,17 +912,17 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
exit; exit;
} }
} }
$is_courseAdmin = (bool) ($cuData['status'] == 1 );
$_courseUser['role'] = $cuData['role'];
$is_courseMember = true;
$is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 ); $is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 );
$is_courseAdmin = (bool) ($cuData['status'] == 1 ); $is_courseMember = true;
$_courseUser['role'] = $cuData['role'];
api_session_register('_courseUser'); api_session_register('_courseUser');
} }
if (!isset($is_courseAdmin)) { // this user has no status related to this course //I'm not the teacher of the course
// is it the session coach or the session admin ? if ($is_courseAdmin == false) {
// 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 = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
@ -933,125 +930,134 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
//Session coach, session admin, course coach admin //Session coach, session admin, course coach admin
$sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user $sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user
FROM $tbl_session session,$tbl_session_course_user session_rcru FROM $tbl_session session, $tbl_session_course_user session_rcru
WHERE session_rcru.id_session = session.id AND WHERE session_rcru.id_session = session.id AND
session_rcru.course_code = '$_cid' AND session_rcru.course_code = '$_cid' AND
session_rcru.id_user = '{$_user['user_id']}' AND session_rcru.id_user = '$user_id' AND
session_rcru.status = 2"; session_rcru.id_session = $session_id AND
session_rcru.status = 2";
$result = Database::query($sql); $result = Database::query($sql);
$row = Database::store_result($result); $row = Database::store_result($result);
if (isset($row) && isset($row[0]) && $row[0]['id_coach'] == $_user['user_id']) { //I'm a session admin?
$_courseUser['role'] = 'Professor'; if( isset($row) && isset($row[0]) && $row[0]['session_admin_id'] == $user_id) {
$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( isset($row) && isset($row[0]) && $row[0]['session_admin_id']==$_user['user_id']) {
$_courseUser['role'] = 'Professor'; $_courseUser['role'] = 'Professor';
$is_courseMember = false; $is_courseMember = false;
$is_courseTutor = false; $is_courseTutor = false;
$is_courseAdmin = false; $is_courseAdmin = false;
$is_courseCoach = false; $is_courseCoach = false;
$is_sessionAdmin = true; $is_sessionAdmin = true;
} else { } else {
// Check if the current user is the course coach //Im a coach or a student?
$sql = "SELECT 1 FROM ".$tbl_session_course_user." $sql = "SELECT id_user FROM ".$tbl_session_course_user."
WHERE course_code='$_cid' AND WHERE course_code = '$_cid' AND
id_user = '".$_user['user_id']."' AND id_user = '".$user_id."' AND
id_session = '".$session_id."' AND id_session = '".$session_id."'
status = 2"; LIMIT 1";
$result = Database::query($sql); $result = Database::query($sql);
if ($row = Database::fetch_array($result)) {
$_courseUser['role'] = 'Professor'; if (Database::num_rows($result)) {
$is_courseMember = true; $row = Database::fetch_array($result,'ASSOC');
$is_courseTutor = true; $session_course_status = $row['status'];
$is_courseCoach = true;
$is_sessionAdmin = false; switch($session_course_status) {
case '2': // coach - teacher
if (api_get_setting('extend_rights_for_coach')=='true') { $_courseUser['role'] = 'Professor';
$is_courseAdmin = true; $is_courseMember = true;
} else { $is_courseTutor = true;
$is_courseAdmin = false; $is_courseCoach = true;
} $is_sessionAdmin = false;
api_session_register('_courseUser');
if (api_get_setting('extend_rights_for_coach') == 'true') {
$is_courseAdmin = true;
} else {
$is_courseAdmin = false;
}
api_session_register('_courseUser');
break;
case '0': //student
$is_courseMember = true;
$is_courseTutor = false;
$is_courseAdmin = false;
$is_sessionAdmin = false;
api_session_register('_courseUser');
break;
default:
//unregister user
$is_courseMember = false;
$is_courseTutor = false;
$is_courseAdmin = false;
$is_sessionAdmin = false;
api_session_unregister('_courseUser');
break;
}
} else { } else {
if ($session_id != 0) { //unregister user
// Check if the user is a student is this session $is_courseMember = false;
$sql = "SELECT * FROM ".$tbl_session_course_user." $is_courseTutor = false;
WHERE id_user = '".$_user['user_id']."' AND $is_courseAdmin = false;
id_session = '".$session_id."' AND $is_sessionAdmin = false;
course_code = '$cidReq' AND status NOT IN(2)"; api_session_unregister('_courseUser');
$result = Database::query($sql);
if (Database::num_rows($result) > 0) { // this user have a recorded state for this course
while($row = Database::fetch_array($result)) {
$is_courseMember = true;
$is_courseTutor = false;
$is_courseAdmin = false;
$is_sessionAdmin = false;
api_session_register('_courseUser');
}
}
} else {
//unregister user
$is_courseMember = false;
$is_courseTutor = false;
$is_courseAdmin = false;
$is_sessionAdmin = false;
api_session_unregister('_courseUser');
//$_course['visibility'] = 0; this depends the
}
} }
} }
} }
//If I'm the admin platform i'm a teacher of the course
if ($is_platformAdmin) {
$is_courseAdmin = true;
}
} }
} else { // keys missing => not anymore in the course - user relation } else { // keys missing => not anymore in the course - user relation
// course // course
$is_courseMember = false; $is_courseMember = false;
$is_courseAdmin = false; $is_courseAdmin = false;
$is_courseTutor = false; $is_courseTutor = false;
$is_courseCoach = false; $is_courseCoach = false;
$is_sessionAdmin = false; $is_sessionAdmin = false;
api_session_unregister('_courseUser'); api_session_unregister('_courseUser');
} }
//NEW
if (isset($_course)) { //Checking the course access
if ($_course['visibility'] == COURSE_VISIBILITY_OPEN_WORLD) $is_allowed_in_course = false;
$is_allowed_in_course = true;
elseif ($_course['visibility'] == COURSE_VISIBILITY_OPEN_PLATFORM && isset($_user['user_id']) && !api_is_anonymous($_user['user_id'])) if (isset($_course)) {
$is_allowed_in_course = true; switch ($_course['visibility']) {
elseif ($_course['visibility'] == COURSE_VISIBILITY_REGISTERED && ($is_platformAdmin || $is_courseMember)) case COURSE_VISIBILITY_OPEN_WORLD:
$is_allowed_in_course = true; $is_allowed_in_course = true;
elseif ($_course['visibility'] == COURSE_VISIBILITY_CLOSED && ($is_platformAdmin || $is_courseAdmin)) break;
$is_allowed_in_course = true; case COURSE_VISIBILITY_OPEN_PLATFORM :
else $is_allowed_in_course = false; if (isset($user_id) && !api_is_anonymous($user_id)) {
$is_allowed_in_course = true;
}
break;
case COURSE_VISIBILITY_REGISTERED:
if ($is_platformAdmin || $is_courseMember) {
$is_allowed_in_course = true;
}
break;
case COURSE_VISIBILITY_CLOSED:
if ($is_platformAdmin || $is_courseAdmin) {
$is_allowed_in_course = true;
}
break;
}
} }
// check the session visibility // check the session visibility
if (!empty($is_allowed_in_course)) { if ($is_allowed_in_course == true) {
$my_session_id = api_get_session_id();
//if I'm in a session //if I'm in a session
//var_dump($is_platformAdmin, $is_courseTutor,api_is_coach());
if ($my_session_id != 0) { if ($session_id != 0) {
if (!$is_platformAdmin) { if (!$is_platformAdmin) {
// admin and session coach are *not* affected to the invisible session mode // admin and session coach are *not* affected to the invisible session mode
// the coach is not affected because he can log in some days after the end date of a session // the coach is not affected because he can log in some days after the end date of a session
$session_visibility = api_get_session_visibility($my_session_id); $session_visibility = api_get_session_visibility($session_id);
switch ($session_visibility) { switch ($session_visibility) {
case SESSION_INVISIBLE: case SESSION_INVISIBLE:
$is_allowed_in_course =false; $is_allowed_in_course = false;
break; break;
} }
//checking date //checking date
@ -1060,26 +1066,24 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
} }
// save the states // save the states
api_session_register('is_courseAdmin');
api_session_register('is_courseMember'); api_session_register('is_courseMember');
api_session_register('is_courseAdmin');
//api_session_register('is_courseAllowed'); //deprecated old permission var
api_session_register('is_courseTutor'); api_session_register('is_courseTutor');
api_session_register('is_allowed_in_course'); //new permission var api_session_register('is_courseCoach');
api_session_register('is_courseCoach'); api_session_register('is_allowed_in_course');
api_session_register('is_sessionAdmin'); api_session_register('is_sessionAdmin');
} else { // continue with the previous values } else { // continue with the previous values
if (isset($_SESSION ['_courseUser'])) { if (isset($_SESSION ['_courseUser'])) {
$_courseUser = $_SESSION ['_courseUser']; $_courseUser = $_SESSION ['_courseUser'];
} }
$is_courseMember = $_SESSION ['is_courseMember' ]; $is_courseAdmin = $_SESSION ['is_courseAdmin'];
$is_courseAdmin = $_SESSION ['is_courseAdmin' ]; $is_courseTutor = $_SESSION ['is_courseTutor'];
//$is_courseAllowed = $_SESSION ['is_courseAllowed']; //deprecated $is_courseCoach = $_SESSION ['is_courseCoach'];
$is_allowed_in_course = $_SESSION ['is_allowed_in_course']; $is_courseMember = $_SESSION ['is_courseMember'];
$is_courseTutor = $_SESSION ['is_courseTutor' ]; $is_allowed_in_course = $_SESSION ['is_allowed_in_course'];
$is_courseCoach = $_SESSION ['is_courseCoach' ];
} }
/* GROUP INIT */ /* GROUP INIT */

Loading…
Cancel
Save