diff -aur ../mantisbt-1.2.12/bug_update_advanced_page.php ./bug_update_advanced_page.php --- bug_update_advanced_page.php 2012-11-11 23:10:40.000000000 +0000 +++ bug_update_advanced_page.php 2013-04-06 19:33:11.931150001 +0000 @@ -49,7 +49,12 @@ trigger_error( ERROR_BUG_READ_ONLY_ACTION_DENIED, ERROR ); } -access_ensure_bug_level( config_get( 'update_bug_threshold' ), $f_bug_id ); +if ( ON == config_get( 'allow_reporter_update' ) ) { + if( bug_is_user_reporter( $f_bug_id, auth_get_current_user_id() ) ) { + access_ensure_bug_level( config_get( 'report_bug_threshold' ), $f_bug_id ); + } +} +else access_ensure_bug_level( config_get( 'update_bug_threshold' ), $f_bug_id ); html_page_top( bug_format_summary( $f_bug_id, SUMMARY_CAPTION ) ); diff -aur ../mantisbt-1.2.12/bug_update.php ./bug_update.php --- bug_update.php 2012-11-11 23:10:40.000000000 +0000 +++ bug_update.php 2013-04-06 19:24:54.943149999 +0000 @@ -53,6 +53,7 @@ && access_has_bug_level( config_get( 'report_bug_threshold' ), $f_bug_id, $t_user ) && ( ON == config_get( 'allow_reporter_reopen' ) || ON == config_get( 'allow_reporter_close' ) + || ON == config_get( 'allow_reporter_update' ) ) ) ) diff -aur ../mantisbt-1.2.12/config_defaults_inc.php ./config_defaults_inc.php --- config_defaults_inc.php 2012-11-11 23:10:40.000000000 +0000 +++ config_defaults_inc.php 2013-04-06 19:46:50.403150021 +0000 @@ -2575,6 +2575,13 @@ $g_allow_reporter_reopen = ON; /** + * reporter can update + * Allow reporters to update the bugs they reported, without being able to update any other bugs. + * @global int $g_allow_reporter_update + */ + $g_allow_reporter_update = OFF; + + /** * reporter can upload * Allow reporters to upload attachments to bugs they reported. * @global int $g_allow_reporter_upload diff -aur ../mantisbt-1.2.12/core/html_api.php ./core/html_api.php --- core/html_api.php 2012-11-11 23:10:40.000000000 +0000 +++ core/html_api.php 2013-04-06 19:14:43.679150001 +0000 @@ -1370,7 +1370,12 @@ * @return null */ function html_button_bug_update( $p_bug_id ) { - if( access_has_bug_level( config_get( 'update_bug_threshold' ), $p_bug_id ) ) { + if( access_has_bug_level( config_get( 'update_bug_threshold' ), $p_bug_id ) || + ( access_has_bug_level( config_get( 'report_bug_threshold' ), $p_bug_id ) && + bug_is_user_reporter( $p_bug_id, auth_get_current_user_id() ) && + ON == config_get( 'allow_reporter_update' ) + ) + ) { html_button( string_get_bug_update_page(), lang_get( 'update_bug_button' ), array( 'bug_id' => $p_bug_id ) ); } }