. /** * User Page * * @package MantisBT * @copyright Copyright 2000 - 2002 Kenzaburo Ito - kenito@300baud.org * @copyright Copyright 2002 MantisBT Team - mantisbt-dev@lists.sourceforge.net * @link http://www.mantisbt.org # ------------------------------------------------------------------ # # 2022/08 - Franck2022 : Ajout de filtre selon le projet sélectionné # # ------------------------------------------------------------------ # * * @uses core.php * @uses access_api.php * @uses authentication_api.php * @uses config_api.php * @uses constant_inc.php * @uses database_api.php * @uses gpc_api.php * @uses helper_api.php * @uses html_api.php * @uses icon_api.php * @uses lang_api.php * @uses print_api.php * @uses string_api.php * @uses utility_api.php */ require_once( 'core.php' ); require_api( 'access_api.php' ); require_api( 'authentication_api.php' ); require_api( 'config_api.php' ); require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); require_api( 'gpc_api.php' ); require_api( 'helper_api.php' ); require_api( 'html_api.php' ); require_api( 'icon_api.php' ); require_api( 'lang_api.php' ); require_api( 'print_api.php' ); require_api( 'string_api.php' ); require_api( 'utility_api.php' ); auth_reauthenticate(); access_ensure_global_level( config_get( 'manage_user_threshold' ) ); $t_cookie_name = config_get( 'manage_users_cookie' ); $t_lock_image = icon_get( 'fa-lock', 'fa-lg', lang_get( 'protected' ) ); $t_project_user_list_table = db_get_table( 'project_user_list' ); # Franck2022 : Ajout + 'mantis_project_user_list_table' $f_save = gpc_get_bool( 'save' ); $f_filter = gpc_get_string( 'filter', 'ALL' ); $f_search = gpc_get_string( 'search', ''); $f_page_number = gpc_get_int( 'page_number', 1 ); $f_projet_id = helper_get_current_project(); # Franck2022 : Ajout + if( !$f_save && !is_blank( gpc_get_cookie( $t_cookie_name, '' ) ) ) { $t_manage_arr = explode( ':', gpc_get_cookie( $t_cookie_name ) ); # Hide Inactive $f_hide_inactive = (bool)$t_manage_arr[0]; # Sort field if ( isset( $t_manage_arr[1] ) ) { $f_sort = $t_manage_arr[1]; } else { $f_sort = 'username'; } # Sort order if ( isset( $t_manage_arr[2] ) ) { $f_dir = $t_manage_arr[2]; } else { $f_dir = 'DESC'; } # Show Disabled if ( isset( $t_manage_arr[3] ) ) { $f_show_disabled = $t_manage_arr[3]; } else { $f_show_disabled = false; } } else { $f_sort = gpc_get_string( 'sort', 'username' ); $f_dir = gpc_get_string( 'dir', 'ASC' ); $f_hide_inactive = gpc_get_bool( 'hideinactive' ); $f_show_disabled = gpc_get_bool( 'showdisabled' ); } # Clean up the form variables if( !db_field_exists( $f_sort, db_get_table( 'user' ) ) ) { $c_sort = 'username'; } else { $c_sort = addslashes( $f_sort ); } $c_dir = ( $f_dir == 'ASC' ) ? 'ASC' : 'DESC'; # OFF = show inactive users, anything else = hide them $c_hide_inactive = ( $f_hide_inactive == OFF ) ? OFF : ON; $t_hide_inactive_filter = '&hideinactive=' . $c_hide_inactive; # OFF = hide disabled users, anything else = show them $c_show_disabled = ( $f_show_disabled == OFF ) ? OFF : ON; $t_show_disabled_filter = '&showdisabled=' . $c_show_disabled; # set cookie values for hide inactive, sort by, dir and show disabled if( $f_save ) { $t_manage_string = $c_hide_inactive.':'.$c_sort.':'.$c_dir.':'.$c_show_disabled; gpc_set_cookie( $t_cookie_name, $t_manage_string, true ); } layout_page_header( lang_get( 'manage_users_link' ) ); layout_page_begin( 'manage_overview_page.php' ); print_manage_menu( 'manage_user_page.php' ); # New Accounts Form BEGIN $t_days_old = 7 * SECONDS_PER_DAY; $t_query = 'SELECT COUNT(*) AS new_user_count FROM {user} WHERE ' . db_helper_compare_time( db_param(), '<=', 'date_created', $t_days_old ); $t_result = db_query( $t_query, array( db_now() ) ); $t_row = db_fetch_array( $t_result ); $t_new_user_count = $t_row['new_user_count']; # Never Logged In Form BEGIN $t_query = 'SELECT COUNT(*) AS unused_user_count FROM {user} WHERE ( login_count = 0 ) AND ( date_created = last_visit )'; $t_result = db_query( $t_query ); $t_row = db_fetch_array( $t_result ); $t_unused_user_count = $t_row['unused_user_count']; # Manage Form BEGIN $t_prefix_array = array(); $t_prefix_array['ALL'] = lang_get( 'show_all_users' ); for( $i = 'A'; $i != 'AA'; $i++ ) { $t_prefix_array[$i] = $i; } for( $i = 0; $i <= 9; $i++ ) { $t_prefix_array[(string)$i] = (string)$i; } $t_prefix_array['UNUSED'] = lang_get( 'users_unused' ); $t_prefix_array['NEW'] = lang_get( 'users_new' ); ?>
$t_caption ) { if( $t_prefix === 'UNUSED' ) { $t_search = ''; $t_title = ' title="[' . $t_unused_user_count . '] (' . lang_get( 'never_logged_in_title' ) . ')"'; } else if( $t_prefix === 'NEW' ) { $t_search = ''; $t_title = ' title="[' . $t_new_user_count . '] (' . lang_get( '1_week_title' ) . ')"'; } else { $t_search = $f_search; $t_title = ''; } $t_active = (string)$t_prefix === $f_filter ? 'active' : ''; print_manage_user_sort_link( 'manage_user_page.php', $t_caption, $c_sort, $c_dir, null, $c_hide_inactive, $t_prefix, $t_search, $c_show_disabled, 'btn btn-xs btn-white btn-primary ' . $t_active ); } ?>
$t_negate ) { if( $t_first ) { $t_where .= ' AND ( '; $t_first = false; } else { $t_where .= ' AND '; } if( $t_negate ) { $t_where .= 'NOT '; } $c_search = '%' . $t_search_term . '%'; $t_where .= '( ' . db_helper_like( 'realname' ) . ' OR ' . db_helper_like( 'username' ) . ' OR ' . db_helper_like( 'email' ); $t_where_params[] = $c_search; $t_where_params[] = $c_search; $t_where_params[] = $c_search; $t_where .= ' )'; } if( !$t_first ) { $t_where .= ' )'; } } $p_per_page = 50; $t_offset = ( ( $f_page_number - 1 ) * $p_per_page ); $t_total_user_count = 0; # Get the user data in $c_sort order $t_result = ''; if( ON != $c_show_disabled ) { $t_where .= ' AND enabled = ' . db_param(); $t_where_params[] = true; } if( OFF != $c_hide_inactive ) { $t_where .= ' AND ' . db_helper_compare_time( db_param(), '<', 'last_visit', $t_days_old ); $t_where_params[] = db_now(); } if ($f_projet_id==null || !isset($f_projet_id) || $f_projet_id=='-1') { # Franck2022 : Ajout + $t_query = 'SELECT count(*) as user_count FROM {user} WHERE ' . $t_where; $t_result = db_query( $t_query, $t_where_params ); $t_row = db_fetch_array( $t_result ); $t_total_user_count = $t_row['user_count']; } else { // Projet sélectionné # Franck2022 : Ajout + $t_query = 'SELECT count(*) as user_count FROM {user} u LEFT JOIN {project_user_list} pu ON pu.user_id=u.id WHERE ' . $t_where . ' AND pu.project_id=' . $f_projet_id; # Franck2022 : Ajout + $t_result = db_query( $t_query, $t_where_params ); # Franck2022 : Ajout + $t_row = db_fetch_array( $t_result ); # Franck2022 : Ajout + $t_total_user_count = $t_row['user_count']; # Franck2022 : Ajout + } # Franck2022 : Ajout + $t_page_count = ceil( $t_total_user_count / $p_per_page ); if( $t_page_count < 1 ) { $t_page_count = 1; } # Make sure $p_page_number isn't past the last page. if( $f_page_number > $t_page_count ) { $f_page_number = $t_page_count; } # Make sure $p_page_number isn't before the first page if( $f_page_number < 1 ) { $f_page_number = 1; } if ($f_projet_id==null || !isset($f_projet_id) || $f_projet_id=='-1') { # Franck2022 : Ajout + $t_query = 'SELECT * FROM {user} WHERE ' . $t_where . ' ORDER BY ' . $c_sort . ' ' . $c_dir; } else { // Projet sélectionné # Franck2022 : Ajout + $t_query = 'SELECT * FROM {user} u LEFT JOIN {project_user_list} pu ON pu.user_id=u.id WHERE ' . $t_where . 'AND pu.project_id=' . $f_projet_id . ' ORDER BY ' . $c_sort . ' ' . $c_dir; # Franck2022 : Ajout + } # Franck2022 : Ajout + $t_result = db_query( $t_query, $t_where_params, $p_per_page, $t_offset ); $t_users = array(); while( $t_row = db_fetch_array( $t_result ) ) { $t_users[] = $t_row; } $t_user_count = count( $t_users ); ?>

"; print_manage_user_sort_link( 'manage_user_page.php', lang_get( $t_col ), $t_col, $c_dir, $c_sort, $c_hide_inactive, $f_filter, $f_search, $c_show_disabled ); print_sort_icon( $c_dir, $c_sort, $t_col ); echo "\n"; } ?>
%s', 'manage_user_edit_page.php?user_id=' . $v_id, string_display_line( $v_username ) ); } else { echo string_display_line( $v_username ); } ?>
$p_per_page ) { ?>