| [ Index ] |
PHP Cross Reference of MantisBT |
[Summary view] [Print] [Text view]
1 <?php 2 # MantisBT - A PHP based bugtracking system 3 4 # MantisBT is free software: you can redistribute it and/or modify 5 # it under the terms of the GNU General Public License as published by 6 # the Free Software Foundation, either version 2 of the License, or 7 # (at your option) any later version. 8 # 9 # MantisBT is distributed in the hope that it will be useful, 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 # GNU General Public License for more details. 13 # 14 # You should have received a copy of the GNU General Public License 15 # along with MantisBT. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * @package MantisBT 19 * @copyright Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org 20 * @copyright Copyright (C) 2002 - 2011 MantisBT Team - mantisbt-dev@lists.sourceforge.net 21 * @link http://www.mantisbt.org 22 * 23 * @uses core.php 24 * @uses access_api.php 25 * @uses authentication_api.php 26 * @uses config_api.php 27 * @uses constant_inc.php 28 * @uses database_api.php 29 * @uses gpc_api.php 30 * @uses helper_api.php 31 * @uses html_api.php 32 * @uses icon_api.php 33 * @uses lang_api.php 34 * @uses print_api.php 35 * @uses string_api.php 36 * @uses utility_api.php 37 */ 38 39 /** 40 * MantisBT Core API's 41 */ 42 require_once ( 'core.php' ); 43 require_api( 'access_api.php' ); 44 require_api( 'authentication_api.php' ); 45 require_api( 'config_api.php' ); 46 require_api( 'constant_inc.php' ); 47 require_api( 'database_api.php' ); 48 require_api( 'gpc_api.php' ); 49 require_api( 'helper_api.php' ); 50 require_api( 'html_api.php' ); 51 require_api( 'icon_api.php' ); 52 require_api( 'lang_api.php' ); 53 require_api( 'print_api.php' ); 54 require_api( 'string_api.php' ); 55 require_api( 'utility_api.php' ); 56 57 auth_reauthenticate(); 58 59 access_ensure_global_level( config_get( 'manage_user_threshold' ) ); 60 61 $f_sort = gpc_get_string( 'sort', 'username' ); 62 $f_dir = gpc_get_string( 'dir', 'ASC' ); 63 $f_hide = gpc_get_bool( 'hide' ); 64 $f_save = gpc_get_bool( 'save' ); 65 $f_filter = utf8_strtoupper( gpc_get_string( 'filter', config_get( 'default_manage_user_prefix' ) ) ); 66 $f_page_number = gpc_get_int( 'page_number', 1 ); 67 68 $t_user_table = db_get_table( 'user' ); 69 $t_cookie_name = config_get( 'manage_cookie' ); 70 $t_lock_image = '<img src="' . config_get( 'icon_path' ) . 'protected.gif" width="8" height="15" alt="' . lang_get( 'protected' ) . '" />'; 71 $c_filter = ''; 72 73 # Clean up the form variables 74 if ( !db_field_exists( $f_sort, $t_user_table ) ) { 75 $c_sort = 'username'; 76 } else { 77 $c_sort = addslashes($f_sort); 78 } 79 80 if ($f_dir == 'ASC') { 81 $c_dir = 'ASC'; 82 } else { 83 $c_dir = 'DESC'; 84 } 85 86 if ($f_hide == 0) { # a 0 will turn it off 87 $c_hide = 0; 88 } else { # anything else (including 'on') will turn it on 89 $c_hide = 1; 90 } 91 $t_hide_filter = '&hide=' . $c_hide; 92 93 # set cookie values for hide, sort by, and dir 94 if ( $f_save ) { 95 $t_manage_string = $c_hide.':'.$c_sort.':'.$c_dir; 96 gpc_set_cookie( $t_cookie_name, $t_manage_string, true ); 97 } else if ( !is_blank( gpc_get_cookie( $t_cookie_name, '' ) ) ) { 98 $t_manage_arr = explode( ':', gpc_get_cookie( $t_cookie_name ) ); 99 $f_hide = $t_manage_arr[0]; 100 101 if ( isset( $t_manage_arr[1] ) ) { 102 $f_sort = $t_manage_arr[1]; 103 } else { 104 $f_sort = 'username'; 105 } 106 107 if ( isset( $t_manage_arr[2] ) ) { 108 $f_dir = $t_manage_arr[2]; 109 } else { 110 $f_dir = 'DESC'; 111 } 112 } 113 114 html_page_top( lang_get( 'manage_users_link' ) ); 115 116 print_manage_menu( 'manage_user_page.php' ); 117 118 # New Accounts Form BEGIN 119 120 $days_old = 7 * SECONDS_PER_DAY; 121 $query = "SELECT * 122 FROM $t_user_table 123 WHERE ".db_helper_compare_days("" . db_now() . "","date_created","<= $days_old")." 124 ORDER BY date_created DESC"; 125 $result = db_query_bound( $query ); 126 $g_db->debug=false; 127 $new_user_count = db_num_rows( $result); 128 129 # Never Logged In Form BEGIN 130 131 $query = "SELECT * 132 FROM $t_user_table 133 WHERE ( login_count = 0 ) AND ( date_created = last_visit ) 134 ORDER BY date_created DESC"; 135 $result = db_query_bound( $query ); 136 $unused_user_count = db_num_rows( $result ); 137 138 # Manage Form BEGIN 139 140 $t_prefix_array = array(); 141 142 $t_prefix_array['ALL'] = lang_get( 'show_all_users' ); 143 144 for ( $i = 'A'; $i != 'AA'; $i++ ) { 145 $t_prefix_array[$i] = $i; 146 } 147 148 for ( $i = 0; $i <= 9; $i++ ) { 149 $t_prefix_array["$i"] = "$i"; 150 } 151 $t_prefix_array['UNUSED'] = lang_get( 'users_unused' ); 152 $t_prefix_array['NEW'] = lang_get( 'users_new' ); 153 154 echo '<div id="manage-user-filter-menu">'; 155 echo '<ul class="menu">'; 156 foreach ( $t_prefix_array as $t_prefix => $t_caption ) { 157 echo '<li>'; 158 if ( $t_prefix === 'UNUSED' ) { 159 $t_title = ' title="[' . $unused_user_count . '] (' . lang_get( 'never_logged_in_title' ) . ')"'; 160 } else if ( $t_prefix === 'NEW' ) { 161 $t_title = ' title="[' . $new_user_count . '] (' . lang_get( '1_week_title' ) . ')"'; 162 } else { 163 $t_title = ''; 164 } 165 if ( $t_prefix === $f_filter ) { 166 $c_filter = $f_filter; 167 echo '<span class="current-filter">' . $t_caption . '</span>'; 168 } else { 169 echo '<a' . $t_title . ' href="manage_user_page.php?sort=' . $c_sort . '&dir=' . $c_dir . '&save=1' . $t_hide_filter . '&filter=' . $t_prefix . '">' . $t_caption . '</a>'; 170 } 171 echo '</li>'; 172 } 173 echo '</ul>'; 174 echo '</div>'; 175 176 $t_where_params = null; 177 if ( $f_filter === 'ALL' ) { 178 $t_where = '(1 = 1)'; 179 } else if ( $f_filter === 'UNUSED' ) { 180 $t_where = '(login_count = 0) AND ( date_created = last_visit )'; 181 } else if ( $f_filter === 'NEW' ) { 182 $t_where = db_helper_compare_days("" . db_now() . "","date_created","<= $days_old"); 183 } else { 184 $c_prefix = db_prepare_string($f_filter); 185 $t_where = "(UPPER(username) LIKE '$c_prefix%')"; 186 } 187 188 $p_per_page = 50; 189 190 $t_offset = ( ( $f_page_number - 1 ) * $p_per_page ); 191 192 $total_user_count = 0; 193 194 # Get the user data in $c_sort order 195 $result = ''; 196 if ( 0 == $c_hide ) { 197 $query = "SELECT count(*) as usercnt 198 FROM $t_user_table 199 WHERE $t_where"; 200 $result = db_query_bound($query, $t_where_params); 201 $row = db_fetch_array( $result ); 202 $total_user_count = $row['usercnt']; 203 } else { 204 $query = "SELECT count(*) as usercnt 205 FROM $t_user_table 206 WHERE $t_where AND " . db_helper_compare_days("" . db_now() . "","last_visit","< $days_old"); 207 $result = db_query_bound($query, $t_where_params); 208 $row = db_fetch_array( $result ); 209 $total_user_count = $row['usercnt']; 210 } 211 212 $t_page_count = ceil($total_user_count / $p_per_page); 213 if ( $t_page_count < 1 ) { 214 $t_page_count = 1; 215 } 216 217 # Make sure $p_page_number isn't past the last page. 218 if ( $f_page_number > $t_page_count ) { 219 $f_page_number = $t_page_count; 220 } 221 222 # Make sure $p_page_number isn't before the first page 223 if ( $f_page_number < 1 ) { 224 $f_page_number = 1; 225 } 226 227 228 if ( 0 == $c_hide ) { 229 $query = "SELECT * 230 FROM $t_user_table 231 WHERE $t_where 232 ORDER BY $c_sort $c_dir"; 233 $result = db_query_bound($query, $t_where_params, $p_per_page, $t_offset); 234 } else { 235 236 $query = "SELECT * 237 FROM $t_user_table 238 WHERE $t_where AND " . db_helper_compare_days( "" . db_now() . "", "last_visit", "< $days_old" ) . " 239 ORDER BY $c_sort $c_dir"; 240 $result = db_query_bound($query, $t_where_params, $p_per_page, $t_offset ); 241 } 242 $user_count = db_num_rows( $result ); 243 ?> 244 <div id="manage-user-div" class="form-container"> 245 <h2><?php echo lang_get( 'manage_accounts_title' ) ?></h2> [<?php echo $total_user_count ?>] 246 <?php print_button( 'manage_user_create_page.php', lang_get( 'create_new_account_link' ) ) ?> 247 <?php if ( $f_filter === 'UNUSED' ) echo print_button( 'manage_user_prune.php', lang_get( 'prune_accounts' ) ); ?> 248 <form id="manage-user-filter" method="post" action="manage_user_page.php"> 249 <fieldset> 250 <?php # CSRF protection not required here - form does not result in modifications ?> 251 <input type="hidden" name="sort" value="<?php echo $c_sort ?>" /> 252 <input type="hidden" name="dir" value="<?php echo $c_dir ?>" /> 253 <input type="hidden" name="save" value="1" /> 254 <input type="hidden" name="filter" value="<?php echo $c_filter ?>" /> 255 <input type="checkbox" name="hide" value="1" <?php check_checked( $c_hide, 1 ); ?> /> <?php echo lang_get( 'hide_inactive' ) ?> 256 <input type="submit" class="button" value="<?php echo lang_get( 'filter_button' ) ?>" /> 257 </fieldset> 258 </form> 259 260 <table cellspacing="1" cellpadding="5" border="1"> 261 <tr class="row-category"> 262 <td><?php 263 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'username' ), 'username', $c_dir, $c_sort, $c_hide, $c_filter ); 264 print_sort_icon( $c_dir, $c_sort, 'username' ); ?> 265 </td> 266 <td><?php 267 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'realname' ), 'realname', $c_dir, $c_sort, $c_hide, $c_filter ); 268 print_sort_icon( $c_dir, $c_sort, 'realname' ); ?> 269 </td> 270 <td><?php 271 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'email' ), 'email', $c_dir, $c_sort, $c_hide, $c_filter ); 272 print_sort_icon( $c_dir, $c_sort, 'email' ); ?> 273 </td> 274 <td><?php 275 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'access_level' ), 'access_level', $c_dir, $c_sort, $c_hide, $c_filter ); 276 print_sort_icon( $c_dir, $c_sort, 'access_level' ); ?> 277 </td> 278 <td><?php 279 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'enabled' ), 'enabled', $c_dir, $c_sort, $c_hide, $c_filter ); 280 print_sort_icon( $c_dir, $c_sort, 'enabled' ); ?> 281 </td> 282 <td><?php 283 print_manage_user_sort_link( 'manage_user_page.php', $t_lock_image, 'protected', $c_dir, $c_sort, $c_hide, $c_filter ); 284 print_sort_icon( $c_dir, $c_sort, 'protected' ); ?> 285 </td> 286 <td><?php 287 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'date_created' ), 'date_created', $c_dir, $c_sort, $c_hide, $c_filter ); 288 print_sort_icon( $c_dir, $c_sort, 'date_created' ); ?> 289 </td> 290 <td><?php 291 print_manage_user_sort_link( 'manage_user_page.php', lang_get( 'last_visit' ), 'last_visit', $c_dir, $c_sort, $c_hide, $c_filter ); 292 print_sort_icon( $c_dir, $c_sort, 'last_visit' ); ?> 293 </td> 294 </tr><?php 295 $t_date_format = config_get( 'normal_date_format' ); 296 $t_access_level = Array(); 297 for ($i=0;$i<$user_count;$i++) { 298 # prefix user data with u_ 299 $row = db_fetch_array($result); 300 extract( $row, EXTR_PREFIX_ALL, 'u' ); 301 302 $u_date_created = date( $t_date_format, $u_date_created ); 303 $u_last_visit = date( $t_date_format, $u_last_visit ); 304 305 if( !isset( $t_access_level[$u_access_level] ) ) { 306 $t_access_level[$u_access_level] = get_enum_element( 'access_levels', $u_access_level ); 307 } ?> 308 <tr <?php echo helper_alternate_class( $i ) ?>> 309 <td><?php 310 if ( access_has_global_level( $u_access_level ) ) { ?> 311 <a href="manage_user_edit_page.php?user_id=<?php echo $u_id ?>"><?php echo string_display_line( $u_username ) ?></a><?php 312 } else { 313 echo string_display_line( $u_username ); 314 } ?> 315 </td> 316 <td><?php echo string_display_line( $u_realname ) ?></td> 317 <td><?php print_email_link( $u_email, $u_email ) ?></td> 318 <td><?php echo $t_access_level[$u_access_level] ?></td> 319 <td><?php echo trans_bool( $u_enabled ) ?></td> 320 <td class="center"><?php 321 if ( $u_protected ) { 322 echo " $t_lock_image"; 323 } else { 324 echo ' '; 325 } ?> 326 </td> 327 <td><?php echo $u_date_created ?></td> 328 <td><?php echo $u_last_visit ?></td> 329 </tr><?php 330 } # end for ?> 331 </table> 332 <div class="pager-links"> 333 <?php 334 /* @todo hack - pass in the hide inactive filter via cheating the actual filter value */ 335 print_page_links( 'manage_user_page.php', 1, $t_page_count, (int)$f_page_number, $c_filter . $t_hide_filter . "&sort=$c_sort&dir=$c_dir"); 336 ?> 337 </div> 338 </div> 339 <?php 340 # Manage Form END 341 helper_alternate_class_no_attribute(0); 342 ?> 343 <div id="manage-user-edit-div" class="form-container"> 344 <form id="manage-user-edit-form" method="get" action="manage_user_edit_page.php"<?php # CSRF protection not required here - form does not result in modifications ?>> 345 <fieldset> 346 <div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>"> 347 <label for="username"><span><?php echo lang_get( 'username' ) ?></span></label> 348 <span class="input"><input id="username" type="text" name="username" value="" /></span> 349 <span class="label-style"></span> 350 </div> 351 <span class="submit-button"><input type="submit" class="button" value="<?php echo lang_get( 'manage_user' ) ?>" /></span> 352 </fieldset> 353 </form> 354 </div> 355 <?php 356 html_page_bottom();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Jul 28 15:48:31 2011 | Cross-referenced by PHPXref 0.7 |