diff -Eruw mantis-1.1.0a2/bug_assign.php net.swordcoast.bugtrack/bug_assign.php --- mantis-1.1.0a2/bug_assign.php 2005-06-15 00:00:32.000000000 +0200 +++ net.swordcoast.bugtrack/bug_assign.php 2007-02-11 14:18:37.063207500 +0100 @@ -43,7 +43,7 @@ if ( $f_handler_id != NO_USER ) { # check that new handler has rights to handle the issue - access_ensure_bug_level( config_get( 'handle_bug_threshold' ), $f_bug_id, $f_handler_id ); + # access_ensure_bug_level( config_get( 'handle_bug_threshold' ), $f_bug_id, $f_handler_id ); if ( $t_bug_sponsored ) { if ( !access_has_bug_level( config_get( 'handle_sponsored_bugs_threshold' ), $f_bug_id, $f_handler_id ) ) { Only in net.swordcoast.bugtrack: config_inc.php diff -Eruw mantis-1.1.0a2/core/access_api.php net.swordcoast.bugtrack/core/access_api.php --- mantis-1.1.0a2/core/access_api.php 2005-05-12 18:04:09.000000000 +0200 +++ net.swordcoast.bugtrack/core/access_api.php 2007-02-11 14:06:03.744128000 +0100 @@ -326,11 +326,21 @@ return false; } - # If the bug is private and the user is not the reporter, then the - # the user must also have higher access than private_bug_threshold - if ( VS_PRIVATE == bug_get_field( $p_bug_id, 'view_state' ) && - !bug_is_user_reporter( $p_bug_id, $p_user_id ) ) { - $p_access_level = max( $p_access_level, config_get( 'private_bug_threshold' ) ); + # If the bug is private and the user + # * is not administrator AND + # * is not reporter AND + # * is not the currently assigned-to AND + # * private_bug_treshold should be lower or equal to the users' project access + if ( VS_PRIVATE == bug_get_field( $p_bug_id, 'view_state' )) { + if ( + bug_is_user_handler( $p_bug_id, $p_user_id ) || + bug_is_user_reporter( $p_bug_id, $p_user_id ) || + user_is_administrator( $p_user_id ) + ) { + $p_access_level = VIEWER; // max( $p_access_level, config_get( 'private_bug_threshold' ) ); + } else { + return false; + } } return access_has_project_level( $p_access_level, $t_project_id, $p_user_id ); diff -Eruw mantis-1.1.0a2/core/columns_api.php net.swordcoast.bugtrack/core/columns_api.php --- mantis-1.1.0a2/core/columns_api.php 2006-11-11 08:38:00.000000000 +0100 +++ net.swordcoast.bugtrack/core/columns_api.php 2007-02-11 15:01:06.638546000 +0100 @@ -616,6 +616,10 @@ , lang_get( 'private' ) , lang_get( 'private' ) ); + // Get users who have access to this bug + // and print them + // TODO + // printf("(Users: %s)", ""); } echo ''; } diff -Eruw mantis-1.1.0a2/core/filter_api.php net.swordcoast.bugtrack/core/filter_api.php --- mantis-1.1.0a2/core/filter_api.php 2006-10-31 09:43:58.000000000 +0100 +++ net.swordcoast.bugtrack/core/filter_api.php 2007-02-11 14:37:53.103455500 +0100 @@ -180,26 +180,28 @@ } # private bug selection - if ( !access_has_project_level( config_get( 'private_bug_threshold' ), $t_project_id, $t_user_id ) ) { + + + # if ( !access_has_project_level( config_get( 'private_bug_threshold' ), $t_project_id, $t_user_id ) ) { $t_public = VS_PUBLIC; $t_private = VS_PRIVATE; switch ( $t_filter['view_state'] ) { case META_FILTER_ANY: - array_push( $t_where_clauses, "($t_bug_table.view_state='$t_public' OR $t_bug_table.reporter_id='$t_user_id')" ); + array_push( $t_where_clauses, "($t_bug_table.view_state='$t_public' OR $t_bug_table.reporter_id='$t_user_id' OR $t_bug_table.handler_id='$t_user_id')" ); break; case VS_PUBLIC: array_push( $t_where_clauses, "($t_bug_table.view_state='$t_public')" ); break; case VS_PRIVATE: - array_push( $t_where_clauses, "($t_bug_table.view_state='$t_private' AND $t_bug_table.reporter_id='$t_user_id')" ); + array_push( $t_where_clauses, "($t_bug_table.view_state='$t_private' AND ($t_bug_table.reporter_id='$t_user_id' OR $t_bug_table.handler_id='$t_user_id')"); break; } - } else { - $t_view_state = db_prepare_int( $t_filter['view_state'] ); - if ( ( $t_filter['view_state'] !== META_FILTER_ANY ) && ( !is_blank( $t_filter['view_state'] ) ) ) { - array_push( $t_where_clauses, "($t_bug_table.view_state='$t_view_state')" ); - } - } + #} else { + # $t_view_state = db_prepare_int( $t_filter['view_state'] ); + # if ( ( $t_filter['view_state'] !== META_FILTER_ANY ) && ( !is_blank( $t_filter['view_state'] ) ) ) { + # array_push( $t_where_clauses, "($t_bug_table.view_state='$t_view_state')" ); + # } + #} # reporter $t_any_found = false; diff -Eruw mantis-1.1.0a2/core/html_api.php net.swordcoast.bugtrack/core/html_api.php --- mantis-1.1.0a2/core/html_api.php 2006-12-08 07:28:42.000000000 +0100 +++ net.swordcoast.bugtrack/core/html_api.php 2007-02-11 13:08:52.625696500 +0100 @@ -294,9 +294,11 @@ $t_align = 'left'; } +// if ( is_page_name ('login_page') ) { echo '
'; echo 'Mantis Bugtracker'; echo '
'; +// } } }