@ -20,10 +20,9 @@ define('USER_FIELD_TYPE_DATETIME', 7); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					define('USER_FIELD_TYPE_DOUBLE_SELECT', 8);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					define('USER_FIELD_TYPE_DIVIDER', 9);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					class UserManager {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					class UserManager   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						private function __construct () {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						/**  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -68,7 +67,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($_user['user_id']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$creator_id = $_user['user_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$creator_id = intval( $_user['user_id']) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							} else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$creator_id = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -143,10 +142,12 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function can_delete_user($user_id) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id != strval(intval($user_id))) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id === false) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql = "SELECT * FROM $table_course_user WHERE status = '1' AND user_id = '".$user_id."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$res = Database::query($sql, __FILE__, __LINE__);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							while ($course = Database::fetch_object($res)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$sql = "SELECT user_id FROM $table_course_user WHERE status='1' AND course_code ='".$course->course_code."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$sql = "SELECT user_id FROM $table_course_user WHERE status='1' AND course_code ='".Database::escape_string( $course->course_code) ."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$res2 = Database::query($sql, __FILE__, __LINE__);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								if (Database::num_rows($res2) == 1) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									return false;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -162,6 +163,10 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function delete_user($user_id) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							global $_configuration;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id != strval(intval($user_id))) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id === false) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (!self::can_delete_user($user_id)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -203,7 +208,8 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$user_info = api_get_user_info($user_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (strlen($user_info['picture_uri']) > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$img_path = api_get_path(SYS_CODE_PATH).'upload/users/'.$user_id.'/'.$user_info['picture_uri'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								unlink($img_path);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								if (file_exists($img_path))  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									unlink($img_path);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							// Delete the personal course categories  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -233,7 +239,6 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sqlv = "DELETE FROM $t_ufv WHERE user_id = $user_id";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$resv = Database::query($sqlv, __FILE__, __LINE__);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($_configuration['multiple_access_urls']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								require_once api_get_path(LIBRARY_PATH).'urlmanager.lib.php';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$url_id = 1;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -259,6 +264,8 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function update_openid($user_id, $openid) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$table_user = Database :: get_main_table(TABLE_MAIN_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id != strval(intval($user_id))) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id === false) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql = "UPDATE $table_user SET  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									openid='".Database::escape_string($openid)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql .=	" WHERE user_id='$user_id'";  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -285,6 +292,8 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function update_user($user_id, $firstname, $lastname, $username, $password = null, $auth_source = null, $email, $status, $official_code, $phone, $picture_uri, $expiration_date, $active, $creator_id = null, $hr_dept_id = 0, $extra = null, $language = 'english') {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							global $userPasswordCrypted;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id != strval(intval($user_id))) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id === false) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$table_user = Database :: get_main_table(TABLE_MAIN_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql = "UPDATE $table_user SET  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									lastname='".Database::escape_string($lastname)."',  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -329,7 +338,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function is_username_available($username) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$table_user = Database :: get_main_table(TABLE_MAIN_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql = "SELECT username FROM $table_user WHERE username = '".addslashes ($username)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql = "SELECT username FROM $table_user WHERE username = '".Database::escape_string ($username)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$res = Database::query($sql, __FILE__, __LINE__);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return Database::num_rows($res) == 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -508,6 +517,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function get_user_info($username) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$user_table = Database :: get_main_table(TABLE_MAIN_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$username = Database::escape_string($username);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql = "SELECT * FROM $user_table WHERE username='".$username."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$res = Database::query($sql, __FILE__, __LINE__);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (Database::num_rows($res) > 0) {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -560,6 +570,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function get_teacher_list($course_id, $sel_teacher = '') {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$user_course_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$user_table = Database :: get_main_table(TABLE_MAIN_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$course_id = Database::escape_string($course_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql_query = "SELECT * FROM $user_table a, $user_course_table b where a.user_id=b.user_id AND b.status=1 AND b.course_code='$course_id'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql_result = Database::query($sql_query, __FILE__, __LINE__);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							echo "< select  name = \"author\" > ";  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -770,10 +781,10 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 * @return	A string containing the XHTML code to dipslay the production list, or FALSE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public static function build_production_list($user_id, $force = false, $showdelete = false) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (!$force & &  !empty($_POST['remove_production'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								return true; // postpone reading from the filesystem  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$productions = self::get_user_productions($user_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (empty($productions)) {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -879,6 +890,8 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$t_ufo = Database::get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$t_ufv = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$fname = Database::escape_string($fname);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id != strval(intval($user_id))) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if ($user_id === false) return false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$fvalues = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (is_array($fvalue)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								foreach($fvalue as $val) {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -980,7 +993,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$t_uf = Database :: get_main_table(TABLE_MAIN_USER_FIELD);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$t_ufo = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$columns = array('id', 'field_variable', 'field_type', 'field_display_text', 'field_default_value', 'field_order', 'field_filter', 'tms');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$column = intval($column);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sort_direction = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							if (in_array(strtoupper($direction), array('ASC', 'DESC'))) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								$sort_direction = strtoupper($direction);  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1776,6 +1789,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$tbl_session_course_user 	= Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$user_id = intval($user_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$session_id = intval($session_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							//we filter the courses from the URL  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$join_access_url=$where_access_url='';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							global $_configuration;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -2191,6 +2205,7 @@ class UserManager { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$table_user = Database::get_main_table(TABLE_MAIN_USER);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $title = api_utf8_decode($title);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $content = api_utf8_decode($content);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $email_administrator = Database::escape_string($email_administrator);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							//message in inbox  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$sql_message_outbox = 'SELECT user_id from '.$table_user.' WHERE email="'.$email_administrator.'" ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							//$num_row_query = Database::num_rows($sql_message_outbox);