diff --git a/main/admin/user_list.php b/main/admin/user_list.php index 952ca73fad..8d12527377 100755 --- a/main/admin/user_list.php +++ b/main/admin/user_list.php @@ -390,6 +390,110 @@ function get_user_data($from, $number_of_items, $column, $direction) $sql.= " AND url_rel_user.access_url_id=".api_get_current_access_url_id(); } + global $_configuration,$origin; + + $user_table = Database :: get_main_table(TABLE_MAIN_USER); + $admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN); + $sql = "SELECT + u.user_id AS col0, + u.official_code AS col2, + ".(api_is_western_name_order() + ? "u.firstname AS col3, + u.lastname AS col4," + : "u.lastname AS col3, + u.firstname AS col4,")." + u.username AS col5, + u.email AS col6, + u.status AS col7, + u.active AS col8, + u.user_id AS col9 ". + ", u.expiration_date AS exp ". + " FROM $user_table u "; + + // adding the filter to see the user's only of the current access_url + if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) { + $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $sql.= " INNER JOIN $access_url_rel_user_table url_rel_user ON (u.user_id=url_rel_user.user_id)"; + } + + if (isset ($_GET['keyword'])) { + $keyword = Database::escape_string(trim($_GET['keyword'])); + $sql .= " WHERE (u.firstname LIKE '%".$keyword."%' OR u.lastname LIKE '%".$keyword."%' OR concat(u.firstname,' ',u.lastname) LIKE '%".$keyword."%' OR concat(u.lastname,' ',u.firstname) LIKE '%".$keyword."%' OR u.username LIKE '%".$keyword."%' OR u.official_code LIKE '%".$keyword."%' OR u.email LIKE '%".$keyword."%' )"; + } elseif (isset ($_GET['keyword_firstname'])) { + $keyword_firstname = Database::escape_string($_GET['keyword_firstname']); + $keyword_lastname = Database::escape_string($_GET['keyword_lastname']); + $keyword_email = Database::escape_string($_GET['keyword_email']); + $keyword_officialcode = Database::escape_string($_GET['keyword_officialcode']); + $keyword_username = Database::escape_string($_GET['keyword_username']); + $keyword_status = Database::escape_string($_GET['keyword_status']); + $query_admin_table = ''; + $keyword_admin = ''; + + if ($keyword_status == SESSIONADMIN) { + $keyword_status = '%'; + $query_admin_table = " , $admin_table a "; + $keyword_admin = ' AND a.user_id = u.user_id '; + } + $keyword_active = isset($_GET['keyword_active']); + $keyword_inactive = isset($_GET['keyword_inactive']); + $sql .= $query_admin_table." WHERE (u.firstname LIKE '%".$keyword_firstname."%' " . + "AND u.lastname LIKE '%".$keyword_lastname."%' " . + "AND u.username LIKE '%".$keyword_username."%' " . + "AND u.email LIKE '%".$keyword_email."%' " . + "AND u.official_code LIKE '%".$keyword_officialcode."%' " . + "AND u.status LIKE '".$keyword_status."'" . + $keyword_admin; + + if ($keyword_active && !$keyword_inactive) { + $sql .= " AND u.active='1'"; + } elseif($keyword_inactive && !$keyword_active) { + $sql .= " AND u.active='0'"; + } + $sql .= " ) "; + } + + // adding the filter to see the user's only of the current access_url + if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) { + $sql.= " AND url_rel_user.access_url_id=".api_get_current_access_url_id(); + } + + if (!in_array($direction, array('ASC','DESC'))) { + $direction = 'ASC'; + } + $column = intval($column); + $from = intval($from); + $number_of_items = intval($number_of_items); + + $sql .= " ORDER BY col$column $direction "; + $sql .= " LIMIT $from,$number_of_items"; + + $res = Database::query($sql, __FILE__, __LINE__); + + $users = array (); + $t = time(); + while ($user = Database::fetch_row($res)) { + + $image_path = UserManager::get_user_picture_path_by_id($user[0], 'web', false, true); + $user_profile = UserManager::get_picture_user($user[0], $image_path['file'], 22, USER_IMAGE_SIZE_SMALL, ' width="22" height="22" '); + if (!api_is_anonymous()) { + $photo = '