### Eclipse Workspace Patch 1.0 #P mantis Index: custom_strings_inc.php =================================================================== RCS file: /var/cvsroot/mantis/custom_strings_inc.php,v retrieving revision 1.4 diff -u -r1.4 custom_strings_inc.php --- custom_strings_inc.php 14 Apr 2009 19:23:45 -0000 1.4 +++ custom_strings_inc.php 15 Apr 2009 18:53:02 -0000 @@ -111,5 +111,8 @@ $s_my_view_title_failed_ut = "My Issues that Failed Peer Review"; $s_my_view_title_failed_vt = "My Issues that Failed Validation Testing"; $s_my_view_title_assigned = 'Handled by Me (New and Peer Review Hidden)'; + + # Deleting a User from Multiple Projects + $s_remove_from_all_projects_button = "Remove User from All Projects"; ?> Index: manage_user_edit_page.php =================================================================== RCS file: /var/cvsroot/mantis/manage_user_edit_page.php,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 manage_user_edit_page.php --- manage_user_edit_page.php 11 Mar 2009 19:49:57 -0000 1.1.1.1 +++ manage_user_edit_page.php 15 Apr 2009 18:53:02 -0000 @@ -217,6 +217,8 @@ + + Index: core/user_api.php =================================================================== RCS file: /var/cvsroot/mantis/core/user_api.php,v retrieving revision 1.2 diff -u -r1.2 user_api.php --- core/user_api.php 15 Apr 2009 17:39:12 -0000 1.2 +++ core/user_api.php 15 Apr 2009 18:53:02 -0000 @@ -769,6 +769,35 @@ return $t_projects; } + # Issue 6856: Returns an array of every project the user belongs to + function user_get_all_projects( $p_user_id, $p_show_disabled = false ) { + $t_mantis_project_user_list_table = config_get( 'mantis_project_user_list_table' ); + $t_mantis_project_table = config_get( 'mantis_project_table' ); + + $c_user_id = db_prepare_int( $p_user_id ); + + $query = "SELECT DISTINCT p.id + FROM $t_mantis_project_table p + LEFT JOIN $t_mantis_project_user_list_table u + ON p.id=u.project_id + WHERE "; + if (!$p_show_disabled){ + $query .= "p.enabled=1 AND "; + } + $query .= "u.user_id='$c_user_id' + ORDER BY p.name"; + $result = db_query( $query ); + $category_count = db_num_rows( $result ); + $project_list = ''; + for ($i=0;$i<$category_count;$i++) { + $row = db_fetch_array( $result ); + $t_project_id = $row['id']; + + $project_list [$i] = $t_project_id; + } + return $project_list; + } + $g_user_accessible_subprojects_cache = null; # -------------------- Index: core/print_api.php =================================================================== RCS file: /var/cvsroot/mantis/core/print_api.php,v retrieving revision 1.2 diff -u -r1.2 print_api.php --- core/print_api.php 15 Apr 2009 17:39:12 -0000 1.2 +++ core/print_api.php 15 Apr 2009 18:53:02 -0000 @@ -1171,6 +1171,37 @@ } } + # Issue 6856: Returns a list of just the projects the user belongs to. + function print_project_user_list_as_list( $p_user_id, $p_include_remove_link = true ) { + $t_mantis_project_user_list_table = config_get( 'mantis_project_user_list_table' ); + $t_mantis_project_table = config_get( 'mantis_project_table' ); + + $c_user_id = db_prepare_int( $p_user_id ); + + $query = "SELECT DISTINCT p.id, p.name, p.view_state, u.access_level + FROM $t_mantis_project_table p + LEFT JOIN $t_mantis_project_user_list_table u + ON p.id=u.project_id + WHERE p.enabled=1 AND + u.user_id='$c_user_id' + ORDER BY p.name"; + $result = db_query( $query ); + $category_count = db_num_rows( $result ); + $t_project_list = ''; + for ($i=0;$i<$category_count;$i++) { + $row = db_fetch_array( $result ); + $t_project_id = $row['id']; + $t_project_name = $row['name']; + $t_view_state = $row['view_state']; + $t_access_level = $row['access_level']; + $t_access_level = get_enum_element( 'access_levels', $t_access_level ); + $t_view_state = get_enum_element( 'project_view_state', $t_view_state ); + + $t_project_list .= $t_project_name.'
'; + } + return $t_project_list; + } + # -------------------- # List of projects with which the specified field id is linked. # For every project, the project name is listed and then the list of custom Index: manage_user_all_proj_delete.php =================================================================== RCS file: manage_user_all_proj_delete.php diff -N manage_user_all_proj_delete.php --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ manage_user_all_proj_delete.php 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,59 @@ +. + + # -------------------------------------------------------- + # $Id: manage_user_all_proj_delete.php + # -------------------------------------------------------- + + require_once( 'core.php' ); + + # helper_ensure_post(); + + auth_reauthenticate(); + + $f_user_id = gpc_get_int( 'user_id' ); + + access_ensure_project_level( config_get( 'project_user_threshold' ), $f_project_id ); + + $t_projects = user_get_all_projects ($f_user_id, 0); + + # Confirm with the user + helper_ensure_confirmed( lang_get( 'remove_user_sure_msg' ) . + '
' . lang_get( 'project_name' ) . ': ' . print_project_user_list_as_list ($f_user_id), + lang_get( 'remove_user_button' ) ); + + foreach ($t_projects as $t_project_id){ + $result = project_remove_user( $t_project_id, $f_user_id ); + } + + $t_redirect_url = 'manage_user_edit_page.php?user_id=' .$f_user_id; + + html_page_top1(); + html_meta_redirect( $t_redirect_url ); + html_page_top2(); +?> +
+
+'; + print_bracket_link( $t_redirect_url, lang_get( 'proceed' ) ); +?> +
+ +