@ -144,7 +144,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
//Lookup the user in the main database
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT user_id, username, password, auth_source, active, expiration_date, status FROM $user_table
$sql = "SELECT * FROM $user_table
WHERE username = '".Database::escape_string($login)."'";
$result = Database::query($sql);
@ -157,13 +157,16 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$password = api_get_encrypted_password(trim(stripslashes($password)));
// Check the user's password
if ( ($password == $uData['password'] OR $cas_login) AND (trim($login) == $uData['username'])) {
if (($password == $uData['password'] OR $cas_login) AND (trim($login) == $uData['username'])) {
$update_type = UserManager::get_extra_user_data_by_field($uData['user_id'], 'update_type');
$update_type= $update_type['update_type'];
if (!empty($extAuthSource[$update_type]['updateUser']) & & file_exists($extAuthSource[$update_type]['updateUser'])) {
include_once $extAuthSource[$update_type]['updateUser'];
}
unset($uData['password']);
// Check if the account is active (not locked)
if ($uData['active'] == '1') {
@ -184,14 +187,11 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
if ($my_user_is_admin === false) {
if (is_array($my_url_list) & & count($my_url_list)>0 ) {
if (is_array($my_url_list) & & count($my_url_list) > 0 ) {
// the user have the permissions to enter at this site
if (in_array($current_access_url_id, $my_url_list)) {
ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
$logging_in = true;
} else {
@ -209,16 +209,12 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
} else { //Only admins of the "main" (first) Chamilo portal can login wherever they want
if (in_array(1, $my_url_list)) { //Check if this admin have the access_url_id = 1 which means the principal
ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
} else {
//This means a secondary admin wants to login so we check as he's a normal user
if (in_array($current_access_url_id, $my_url_list)) {
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
} else {
$loginFailed = true;
@ -229,12 +225,8 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
}
}
} else {
//error_log('Loggedin');
ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
$logging_in = true;
}
@ -450,15 +442,8 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$use_anonymous = false;
}
}
// else {} => continue as anonymous user
$uidReset = true;
// $cidReset = true;
// $gidReset = true;
} // end else
} // end
//Now check for anonymous user mode
if (isset($use_anonymous) & & $use_anonymous) {
@ -484,6 +469,11 @@ if (!empty($cidReq) && (!isset($_SESSION['_cid']) or (isset($_SESSION['_cid']) &
$gidReset = true; // As groups depend from courses, group id is reset
}
//Setting app user variable
$_user = Session::read('_user');
$app['current_user'] = $_user;
/* USER INIT */
if (isset($uidReset) & & $uidReset) { // session data refresh requested
unset($_SESSION['_user']['uidReset']);
@ -511,7 +501,7 @@ if (isset($uidReset) && $uidReset) { // session data refresh requested
// Extracting the user data
$uData = Database::fetch_array($result);
$_user = _api_format_user($uData, false);
$_user = _api_format_user($uData, false);
$_user['lastLogin'] = api_strtotime($uData['login_date'], 'UTC');
$is_platformAdmin = (bool) (! is_null( $uData['is_admin']));
@ -521,26 +511,25 @@ if (isset($uidReset) && $uidReset) { // session data refresh requested
Session::write('_user', $_user);
UserManager::update_extra_field_value($_user['user_id'], 'already_logged_in', 'true');
Session::write('is_platformAdmin',$is_platformAdmin);
Session::write('is_allowedCreateCourse',$is_allowedCreateCourse);
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse);
} else {
header('location:'.api_get_path(WEB_PATH));
// exit("WARNING UNDEFINED UID !! ") ;
exit;
}
} else { // no uid => logout or Anonymous
Session::erase('_user');
Session::erase('_uid');
}
Session::write('is_platformAdmin',$is_platformAdmin);
Session::write('is_allowedCreateCourse',$is_allowedCreateCourse);
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse);
} else { // continue with the previous values
$_user = $_SESSION['_user'];
$is_platformAdmin = isset($_SESSION['is_platformAdmin']) ? $_SESSION['is_platformAdmin'] : false;
$is_allowedCreateCourse = isset($_SESSION['is_allowedCreateCourse']) ? $_SESSION['is_allowedCreateCourse'] : false;
}
/* COURSE INIT */
if (isset($cidReset) & & $cidReset) {