123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- require_once(api_get_path(LIBRARY_PATH).'usermanager.lib.php');
- require_once(api_get_path(LIBRARY_PATH).'course.lib.php');
- define('USERINFO_TABLE', 'userinfo');
- function external_get_user_info($login, $password){
-
-
- $table = USERINFO_TABLE;
- $sql = "SELECT * from $table where username='".Database::escape_string($login)."'";
- $result = Database::query($sql);
- if (Database::num_rows($result) == 0 ) {
- return false;
- }
- $user_info = Database::fetch_assoc($result);
-
- $admin = false;
- switch($user_info['status']){
- case 'admin':
- $status = COURSEMANAGER;
- $admin = true;
- break;
- case 'teacher':
- $status = COURSEMANAGER;
- break;
- case 'user':
- $status = STUDENT;
- break;
- default:
- $status = STUDENT;
- }
-
- switch($user_info['language']){
- case 'FR' :
- $language = 'french';
- break;
- case 'EN' :
- $language = 'english';
- break;
- default :
- $language = 'english';
- break;
- }
- $u = array(
- 'firstname' => $user_info['firstname'],
- 'lastname' => $user_info['lastname'],
- 'status' => $status,
- 'admin' => $admin,
- 'email' => $user_info['email'],
- 'login' => $user_info['username'],
- 'language' => $language,
- 'password' => DEFAULT_PASSWORD,
- 'courses' => $user_info['courses'],
- 'profile_link' => $user_info['profile_link'],
- 'worldwide_bu' => $user_info['worlwide_bu'],
- 'manager' => $user_info['manager'],
- 'country_bu' => $user_info['country_bu'],
- 'extra' => array(
- 'position_title' => $user_info['position_title'],
- 'country' => $user_info['country'],
- 'job_family' => $user_info['job_family'],
- 'update_type' => 'external_logininfo')
- );
- return $u;
- }
- function external_update_user($u){
- $updated = UserManager::update_user($u['user_id'], $u['firstname'], $u['lastname'], $u['login'], null, $u['auth_source'], $u['email'], $u['status'], $u['official_code'], $u['phone'], $u['picture_uri'], $u['expiration_date'], $u['active'], $u['creator_id'], $u['hr_dept_id'], $u['extra'], $u['language'],'');
- if(!empty($user['courses'])){
- $autoSubscribe = explode('|', $u['courses']);
- foreach ($autoSubscribe as $code) {
- if (CourseManager::course_exists($code)) {
- CourseManager::subscribe_user($_user['user_id'], $code);
- }
- }
- }
-
- if ($user['admin']){
- $is_platformAdmin = true;
- Database::query("INSERT INTO admin values ('$chamilo_uid')");
- }
- }
- $user = UserManager::get_user_info_by_id($uData['user_id']);
- $new_user = external_get_user_info($login);
- $user['firstname'] = $new_user['firstname'];
- $user['lastname'] = $new_user['lastname'];
- $user['status'] = $new_user['status'];
- $user['admin'] = $new_user['admin'];
- $user['email'] = $new_user['email'];
- $user['username'] = $new_user['login'];
- $user['profile_link'] = $new_user['profile_link'];
- $user['worldwide_bu'] = $new_user['worldwide_bu'];
- $user['manager'] = $new_user['manager'];
- $user['country_bu'] = $new_user['country_bu'];
- $user['extra'] = $new_user['extra'];
- if ($new_user !== false) {
- $new_user['user_id'] = $uData['user_id'];
- external_update_user($new_user);
- }
- ?>
|