From: Glenn H. <thr...@us...> - 2005-05-28 02:15:52
|
Update of /cvsroot/mantisbt/mantisbt/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv306/core Modified Files: user_api.php Log Message: fix for 0005662: 0005641: Re-report: Private projects don't allow users who have been added to the project use the project... - pruned out duplicate children where the parent project will be displayed Index: user_api.php =================================================================== RCS file: /cvsroot/mantisbt/mantisbt/core/user_api.php,v retrieving revision 1.100 retrieving revision 1.101 diff -u -d -r1.100 -r1.101 --- user_api.php 26 May 2005 13:34:51 -0000 1.100 +++ user_api.php 28 May 2005 02:15:40 -0000 1.101 @@ -657,10 +657,12 @@ $t_private = VS_PRIVATE; $t_enabled_clause = $p_show_disabled ? '' : 'p.enabled = 1 AND'; - $query = "SELECT p.id, p.name + $query = "SELECT p.id, p.name, ph.parent_id FROM $t_project_table p LEFT JOIN $t_project_user_list_table u ON p.id=u.project_id AND u.user_id=$c_user_id + LEFT JOIN $t_project_hierarchy_table ph + ON ph.child_id = p.id WHERE $t_enabled_clause ( p.view_state='$t_public' OR (p.view_state='$t_private' @@ -677,8 +679,16 @@ for ( $i=0 ; $i < $row_count ; $i++ ) { $row = db_fetch_array( $result ); - array_push( $t_projects, $row['id'] ); + $t_projects[ $row['id'] ] = $row['parent_id']; + } + + # remove the projects where the parent is already listed + foreach ( $t_projects as $t_id => $t_parent ) { + if ( isset( $t_projects[$t_parent] ) AND ( $t_projects[$t_parent] !== NULL ) ) { + unset( $t_projects[$t_id] ); + } } + $t_projects = array_keys( $t_projects ); } if ( auth_get_current_user_id() == $p_user_id ) { |