Index: config_defaults_inc.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/config_defaults_inc.php,v
retrieving revision 1.183
diff -u -r1.183 config_defaults_inc.php
--- config_defaults_inc.php 25 Jul 2004 21:09:39 -0000 1.183
+++ config_defaults_inc.php 30 Jul 2004 12:28:35 -0000
@@ -53,9 +53,14 @@
$t_protocol = 'https';
}
- $t_port = ':' . $_SERVER['SERVER_PORT'];
- if ( ( ':80' == $t_port && 'http' == $t_protocol )
- || ( ':443' == $t_port && 'https' == $t_protocol )) {
+ # $_SERVER['SERVER_PORT'] is not defined in case of php-cgi.exe
+ if ( isset( $_SERVER['SERVER_PORT'] ) ) {
+ $t_port = ':' . $_SERVER['SERVER_PORT'];
+ if ( ( ':80' == $t_port && 'http' == $t_protocol )
+ || ( ':443' == $t_port && 'https' == $t_protocol )) {
+ $t_port = '';
+ }
+ } else {
$t_port = '';
}
@@ -99,7 +104,11 @@
#############################
# Using Microsoft Internet Information Server (IIS)
- $g_use_iis = ( strstr( $_SERVER['SERVER_SOFTWARE'], 'IIS' ) !== false ) ? ON : OFF;
+ if ( isset( $_SERVER['SERVER_SOFTWARE'] ) ) { # SERVER_SOFTWARE not defined in case of php-cgi.exe
+ $g_use_iis = ( strstr( $_SERVER['SERVER_SOFTWARE'], 'IIS' ) !== false ) ? ON : OFF;
+ } else {
+ $g_use_iis = OFF;
+ }
#############################
# Mantis Email Settings
@@ -883,6 +892,26 @@
# insert the URL to your CVSweb or ViewCVS
# eg: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mantisbt/mantisbt/
$g_cvs_web = '';
+
+ # --- Source Control Integration ------
+
+ # For open source projects it is expected that the notes be public, however,
+ # for non-open source it will probably be VS_PRIVATE.
+ $g_source_control_notes_view_status = VS_PRIVATE;
+
+ # Account to be used by the source control script. The account must be enabled
+ # and must have the appropriate access level to add notes to all issues even
+ # private ones (DEVELOPER access recommended).
+ $g_source_control_account = '';
+
+ # If set to a status, then after a checkin, the issue status is set to the
+ # specified status, otherwise if set to OFF, the issue status is not affected.
+ $g_source_control_set_status_to = OFF;
+
+ # Regular expression used to detect issue ids within checkin comments.
+ # see preg_match_all() documentation at
+ # http://www.php.net/manual/en/function.preg-match-all.php
+ $g_source_control_regexp = "/\bissue [#]{0,1}(\d+)\b/i";
# --- Bug Linking ---------------
# if a number follows this tag it will create a link to a bug.
Index: manage_user_delete.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/manage_user_delete.php,v
retrieving revision 1.27
diff -u -r1.27 manage_user_delete.php
--- manage_user_delete.php 11 Jan 2004 07:16:07 -0000 1.27
+++ manage_user_delete.php 27 Jul 2004 13:58:53 -0000
@@ -20,7 +20,7 @@
user_delete( $f_user_id );
- $t_redirect_url = 'manage_user_page.php';
+ $t_redirect_url = 'manage_user_page.php';
html_page_top1();
Index: core/authentication_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/authentication_api.php,v
retrieving revision 1.42
diff -u -r1.42 authentication_api.php
--- core/authentication_api.php 27 Jul 2004 14:24:57 -0000 1.42
+++ core/authentication_api.php 29 Jul 2004 14:15:28 -0000
@@ -11,6 +11,8 @@
### Authentication API ###
+ $g_script_login_cookie = null;
+
#===================================
# Boolean queries and ensures
#===================================
@@ -49,11 +51,7 @@
# Return true if there is a currently logged in and authenticated user,
# false otherwise
function auth_is_user_authenticated() {
- if ( is_blank( auth_get_current_user_cookie() ) ) {
- return false;
- } else {
- return true;
- }
+ return ( !is_blank( auth_get_current_user_cookie() ) );
}
@@ -126,12 +124,45 @@
}
# --------------------
+ # Allows scripts to login using a login name or ( login name + password )
+ function auth_attempt_script_login( $p_username, $p_password = null ) {
+ global $g_script_login_cookie;
+
+ $t_user_id = user_get_id_by_name( $p_username );
+
+ $t_user = user_get_row( $t_user_id );
+
+ # check for disabled account
+ if ( OFF == $t_user['enabled'] ) {
+ return false;
+ }
+
+ # validate password if supplied
+ if ( null !== $p_password ) {
+ if ( !auth_does_password_match( $t_user_id, $p_password ) ) {
+ return false;
+ }
+ }
+
+ # ok, we're good to login now
+
+ # increment login count
+ user_increment_login_count( $t_user_id );
+
+ # set the cookies
+ $g_script_login_cookie = $t_user['cookie_string'];
+
+ return true;
+ }
+
+ # --------------------
# Logout the current user and remove any remaining cookies from their browser
# Returns true on success, false otherwise
function auth_logout() {
auth_clear_cookies();
helper_clear_pref_cookies();
filter_db_delete_current_filters();
+
return true;
}
@@ -238,6 +269,10 @@
# --------------------
# Clear login cookies
function auth_clear_cookies() {
+ global $g_script_login_cookie;
+
+ $g_script_login_cookie = null;
+
$t_cookie_name = config_get( 'string_cookie' );
$t_cookie_path = config_get( 'cookie_path' );
@@ -291,19 +326,25 @@
# if no user is logged in and anonymous login is enabled, returns cookie for anonymous user
# otherwise returns '' (an empty string)
function auth_get_current_user_cookie() {
+ global $g_script_login_cookie;
+
$t_cookie_name = config_get( 'string_cookie' );
$t_cookie = gpc_get_cookie( $t_cookie_name, '' );
# if cookie not found, and anonymous login enabled, use cookie of anonymous account.
if ( is_blank( $t_cookie ) ) {
- if ( ON == config_get( 'allow_anonymous_login' ) ) {
- $query = sprintf('SELECT id, cookie_string FROM %s WHERE username = "%s"',
- config_get( 'mantis_user_table' ), config_get( 'anonymous_account' ) );
- $result = db_query( $query );
-
- if ( 1 == db_num_rows( $result ) ) {
- $row = db_fetch_array( $result );
- $t_cookie = $row['cookie_string'];
+ if ( $g_script_login_cookie !== null ) {
+ return $g_script_login_cookie;
+ } else {
+ if ( ON == config_get( 'allow_anonymous_login' ) ) {
+ $query = sprintf('SELECT id, cookie_string FROM %s WHERE username = "%s"',
+ config_get( 'mantis_user_table' ), config_get( 'anonymous_account' ) );
+ $result = db_query( $query );
+
+ if ( 1 == db_num_rows( $result ) ) {
+ $row = db_fetch_array( $result );
+ $t_cookie = $row['cookie_string'];
+ }
}
}
}
Index: core/constant_inc.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/constant_inc.php,v
retrieving revision 1.24
diff -u -r1.24 constant_inc.php
--- core/constant_inc.php 25 Jul 2004 21:09:41 -0000 1.24
+++ core/constant_inc.php 30 Jul 2004 11:14:21 -0000
@@ -133,21 +133,18 @@
define( 'BUG_ADD_SPONSORSHIP', 15 );
define( 'BUG_UPDATE_SPONSORSHIP', 16 );
define( 'BUG_DELETE_SPONSORSHIP', 17 );
- # MASC RELATIONSHIP
define( 'BUG_ADD_RELATIONSHIP', 18 );
define( 'BUG_DEL_RELATIONSHIP', 19 );
define( 'BUG_CLONED_TO', 20 );
define( 'BUG_CREATED_FROM', 21 );
- # MASC RELATIONSHIP
+ define( 'CHECKIN', 22 );
# bug relationship constants
define( 'BUG_DUPLICATE', 0 );
define( 'BUG_RELATED', 1 );
define( 'BUG_DEPENDANT', 2 );
- # MASC RELATIONSHIP
define( 'BUG_BLOCKS', 3 );
define( 'BUG_HAS_DUPLICATE', 4 );
- # MASC RELATIONSHIP
# error messages
define( 'ERROR_GENERIC', 0 );
Index: core/custom_function_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/custom_function_api.php,v
retrieving revision 1.4
diff -u -r1.4 custom_function_api.php
--- core/custom_function_api.php 10 Jul 2004 23:29:49 -0000 1.4
+++ core/custom_function_api.php 30 Jul 2004 11:51:15 -0000
@@ -29,4 +29,20 @@
$t_bug = bug_get( $p_issue_id );
echo '- ', string_get_bug_view_link( $p_issue_id ), ': [', $t_bug->category, '] ', string_display( $t_bug->summary ), ' (', user_get_name( $t_bug->handler_id ), ')
';
}
+
+ # --------------------
+ # Register a checkin in source control by adding a history entry and a note
+ # This can be overriden to do extra work like changing the issue status to
+ # config_get( 'bug_readonly_status_threshold' );
+ function custom_function_default_checkin( $p_issue_id, $p_comment, $p_file, $p_new_version ) {
+ if ( bug_exists( $p_issue_id ) ) {
+ history_log_event_special( $p_issue_id, CHECKIN, $p_file, $p_new_version );
+ bugnote_add( $p_issue_id, $p_comment, VS_PRIVATE == config_get( 'source_control_notes_view_status' ) );
+
+ $t_status = config_get( 'source_control_set_status_to' );
+ if ( OFF != $t_status ) {
+ bug_set_field( $p_issue_id, 'status', $t_status );
+ }
+ }
+ }
?>
\ No newline at end of file
Index: core/history_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/history_api.php,v
retrieving revision 1.25
diff -u -r1.25 history_api.php
--- core/history_api.php 18 Jul 2004 09:58:29 -0000 1.25
+++ core/history_api.php 30 Jul 2004 12:14:12 -0000
@@ -302,7 +302,6 @@
$t_note = lang_get( 'sponsorship_deleted' );
$t_change = user_get_name( $p_old_value ) . ': ' . sponsorship_format_amount( $p_new_value );
break;
- # MASC RELATIONSHIP
case BUG_ADD_RELATIONSHIP:
$t_note = lang_get( 'relationship_added' ) . ': ' . lang_get( 'bug' ) . ' ' . bug_format_id( $p_new_value );
break;
@@ -315,8 +314,9 @@
case BUG_CREATED_FROM:
$t_note = lang_get( 'bug_created_from' ) . ': ' . bug_format_id( $p_new_value );
break;
- # MASC RELATIONSHIP
-
+ case CHECKIN:
+ $t_note = lang_get( 'checkin' );
+ break;
}
}
Index: core/html_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/html_api.php,v
retrieving revision 1.113
diff -u -r1.113 html_api.php
--- core/html_api.php 24 Jul 2004 15:20:45 -0000 1.113
+++ core/html_api.php 24 Jul 2004 15:37:27 -0000
@@ -375,7 +375,7 @@
foreach( $t_custom_menu_options as $t_custom_option ) {
$t_access_level = $t_custom_option[1];
- if ( access_has_project_level( $t_access_level ) ) {
+ if ( access_has_global_level( $t_access_level ) ) {
$t_caption = lang_get_defaulted( $t_custom_option[0] );
$t_link = $t_custom_option[2];
$t_options[] = "$t_caption";
Index: doc/ChangeLog
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/doc/ChangeLog,v
retrieving revision 1.716
diff -u -r1.716 ChangeLog
--- doc/ChangeLog 27 Jul 2004 11:44:26 -0000 1.716
+++ doc/ChangeLog 30 Jul 2004 12:34:34 -0000
@@ -2,6 +2,7 @@
2004.08.xx - 0.19.0xx
+- 0003371: [feature] CVS Integration - general source control integration implemented (vboctor)
- 0004137: [feature] Support a simple "view" URL (vboctor)
- 0004145: [feature] Mantis pages should have descriptive titles (vboctor)
- 0004185: [customization] Support custom menu options (vboctor)
Index: lang/strings_english.txt
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/lang/strings_english.txt,v
retrieving revision 1.189
diff -u -r1.189 strings_english.txt
--- lang/strings_english.txt 22 Jul 2004 15:05:13 -0000 1.189
+++ lang/strings_english.txt 30 Jul 2004 12:06:27 -0000
@@ -1000,4 +1000,7 @@
$s_create_child_bug_button = "Create Child";
$s_bug_cloned_to = "Issue cloned";
$s_bug_created_from = "Issue generated from";
+
+# Source Control Integration
+$s_checkin = 'Checkin';
?>
\ No newline at end of file