### 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' ) );
+?>
+
+
+