[ Index ]
 

Code source de Mantis 1.1.0rc3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/admin/upgrades/ -> 0_18_inc.php (source)

   1  <?php
   2  # Mantis - a php based bugtracking system
   3  
   4  # Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
   5  # Copyright (C) 2002 - 2007  Mantis Team   - mantisbt-dev@lists.sourceforge.net
   6  
   7  # Mantis is free software: you can redistribute it and/or modify
   8  # it under the terms of the GNU General Public License as published by
   9  # the Free Software Foundation, either version 2 of the License, or
  10  # (at your option) any later version.
  11  #
  12  # Mantis is distributed in the hope that it will be useful,
  13  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15  # GNU General Public License for more details.
  16  #
  17  # You should have received a copy of the GNU General Public License
  18  # along with Mantis.  If not, see <http://www.gnu.org/licenses/>.
  19  
  20      # Changes applied to 0.18 database
  21  
  22      # --------------------------------------------------------
  23      # $Id: 0_18_inc.php,v 1.30.16.1 2007-10-13 22:35:09 giallu Exp $
  24      # --------------------------------------------------------
  25  ?>
  26  <?php
  27      require( dirname( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR . 'db_table_names_inc.php' );
  28  
  29      $upgrades = array();
  30  
  31      $upgrades[] = new FunctionUpgrade(
  32          '0.18-vb-1',
  33          'Add index on bug_id field in mantis_bug_file_table.',
  34          'upgrade_0_18_vb_1' );
  35  
  36      $upgrades[] = new SQLUpgrade(
  37              'filtersdb-1',
  38              'Add mantis_filters_table',
  39              "CREATE TABLE $t_filters_table (
  40                id int(7) unsigned NOT NULL auto_increment,
  41                user_id int(7) NOT NULL,
  42                project_id int(7) NOT NULL,
  43                is_public BOOL,
  44                name char(64) NOT NULL,
  45                filter_string text NOT NULL,
  46                PRIMARY KEY (id))"
  47          );
  48  
  49  	function upgrade_0_18_vb_1() {
  50          global $t_bug_file_table;
  51  
  52          if ( !db_key_exists_on_field( $t_bug_file_table, 'bug_id', 'MUL' ) ) {
  53              $query = "ALTER TABLE $t_bug_file_table ADD INDEX bug_id ( bug_id )";
  54              $result = @db_query( $query );
  55  
  56              if ( false == $result ) {
  57                  return false;
  58              }
  59          }
  60  
  61          return true;
  62      }
  63  
  64      $upgrades[] = new FunctionUpgrade(
  65          'emailsevs-1',
  66          'Add the necessary columns for email severity filtering',
  67          'emailseverities_fix_1' );
  68  
  69  	function emailseverities_fix_1() {
  70          global $t_user_pref_table;
  71  
  72          if ( !db_field_exists( 'email_on_priority_minimum_severity', $t_user_pref_table ) ) {
  73              $query = "ALTER TABLE $t_user_pref_table ADD email_on_priority_minimum_severity INT(2) DEFAULT '10' NOT NULL
  74                          AFTER email_on_priority";
  75  
  76              $result = @db_query( $query );
  77  
  78              if ( false == $result ) {
  79                  return false;
  80              }
  81          }
  82  
  83          if ( !db_field_exists( 'email_on_status_minimum_severity', $t_user_pref_table ) ) {
  84              $query = "ALTER TABLE $t_user_pref_table ADD email_on_status_minimum_severity INT(2) DEFAULT '10' NOT NULL
  85                          AFTER email_on_priority_minimum_severity";
  86  
  87              $result = @db_query( $query );
  88  
  89              if ( false == $result ) {
  90                  return false;
  91              }
  92          }
  93  
  94          if ( !db_field_exists( 'email_on_bugnote_minimum_severity', $t_user_pref_table ) ) {
  95              $query = "ALTER TABLE $t_user_pref_table ADD email_on_bugnote_minimum_severity INT(2) DEFAULT '10' NOT NULL
  96                          AFTER email_on_status_minimum_severity";
  97  
  98              $result = @db_query( $query );
  99  
 100              if ( false == $result ) {
 101                  return false;
 102              }
 103          }
 104  
 105          if ( !db_field_exists( 'email_on_reopened_minimum_severity', $t_user_pref_table ) ) {
 106              $query = "ALTER TABLE $t_user_pref_table ADD email_on_reopened_minimum_severity INT(2) DEFAULT '10' NOT NULL
 107                          AFTER email_on_bugnote_minimum_severity";
 108  
 109              $result = @db_query( $query );
 110  
 111              if ( false == $result ) {
 112                  return false;
 113              }
 114          }
 115  
 116          if ( !db_field_exists( 'email_on_closed_minimum_severity', $t_user_pref_table ) ) {
 117              $query = "ALTER TABLE $t_user_pref_table ADD email_on_closed_minimum_severity INT(2) DEFAULT '10' NOT NULL
 118                          AFTER email_on_reopened_minimum_severity";
 119  
 120              $result = @db_query( $query );
 121  
 122              if ( false == $result ) {
 123                  return false;
 124              }
 125          }
 126  
 127          if ( !db_field_exists( 'email_on_resolved_minimum_severity', $t_user_pref_table ) ) {
 128              $query = "ALTER TABLE $t_user_pref_table ADD email_on_resolved_minimum_severity INT(2) DEFAULT '10' NOT NULL
 129                          AFTER email_on_closed_minimum_severity";
 130  
 131              $result = @db_query( $query );
 132  
 133              if ( false == $result ) {
 134                  return false;
 135              }
 136          }
 137  
 138          if ( !db_field_exists( 'email_on_feedback_minimum_severity', $t_user_pref_table ) ) {
 139              $query = "ALTER TABLE $t_user_pref_table ADD email_on_feedback_minimum_severity INT(2) DEFAULT '10' NOT NULL
 140                          AFTER email_on_resolved_minimum_severity";
 141  
 142              $result = @db_query( $query );
 143  
 144              if ( false == $result ) {
 145                  return false;
 146              }
 147          }
 148  
 149          if ( !db_field_exists( 'email_on_assigned_minimum_severity', $t_user_pref_table ) ) {
 150              $query = "ALTER TABLE $t_user_pref_table ADD email_on_assigned_minimum_severity INT(2) DEFAULT '10' NOT NULL
 151                          AFTER email_on_feedback_minimum_severity";
 152  
 153              $result = @db_query( $query );
 154  
 155              if ( false == $result ) {
 156                  return false;
 157              }
 158          }
 159  
 160          if ( !db_field_exists( 'email_on_new_minimum_severity', $t_user_pref_table ) ) {
 161              $query = "ALTER TABLE $t_user_pref_table ADD email_on_new_minimum_severity INT(2) DEFAULT '10' NOT NULL
 162                          AFTER email_on_assigned_minimum_severity";
 163  
 164              $result = @db_query( $query );
 165  
 166              if ( false == $result ) {
 167                  return false;
 168              }
 169          }
 170  
 171          return true;
 172      }
 173  
 174  
 175      $upgrades[] = new SQLUpgrade(
 176              'sponsorship-1',
 177              'Add sponsorships table',
 178              "CREATE TABLE IF NOT EXISTS mantis_sponsorship_table (
 179                  id int(7) NOT NULL auto_increment,
 180                  bug_id int(7) NOT NULL default '0',
 181                  user_id int(7) NOT NULL default '0',
 182                  amount int(7) NOT NULL default '0',
 183                  logo varchar(128) NOT NULL default '',
 184                  url varchar(128) NOT NULL default '',
 185                  paid int(1) NOT NULL default '0',
 186                  date_submitted datetime NOT NULL default '1970-01-01 00:00:01',
 187                  last_updated datetime NOT NULL default '1970-01-01 00:00:01',
 188                  PRIMARY KEY  (id),
 189                  KEY bug_id (bug_id),
 190                  KEY user_id (user_id)
 191                  ) TYPE=MyISAM COMMENT='A table for sponsorships' AUTO_INCREMENT=1" );
 192  
 193      $upgrades[] = new SQLUpgrade(
 194              'sponsorship-2',
 195              'Add sponsorship_total to bug table',
 196              "ALTER TABLE $t_bug_table ADD sponsorship_total INT( 7 ) DEFAULT '0' NOT NULL" );
 197  
 198      $upgrades[] = new SQLUpgrade(
 199              'sponsorship-3',
 200              'Add an index on sponsorship_total in bug table',
 201              "ALTER TABLE $t_bug_table ADD INDEX sponsorship_total ( sponsorship_total )" );
 202  
 203      $upgrades[] = new SQLUpgrade(
 204              'fixed_in_version-1',
 205              'Add fixed_in_version field to bug table.',
 206              "ALTER TABLE $t_bug_table ADD fixed_in_version VARCHAR( 64 ) NOT NULL AFTER version" );
 207  
 208      $upgrades[] = new SQLUpgrade(
 209              'fixed_in_version-2',
 210              'Add index on fixed_in_version field in bug table.',
 211              "ALTER TABLE $t_bug_table ADD INDEX ( fixed_in_version )" );
 212  
 213      $upgrades[] = new SQLUpgrade(
 214              'user_realname',
 215              'Add real name to user information.',
 216              "ALTER TABLE $t_user_table ADD realname VARCHAR( 64 ) NOT NULL AFTER username" );
 217  
 218      $upgrades[] = new SQLUpgrade(
 219              'custom_fields-1',
 220              'Allow custom fields to be set/required for resolve/close/report/update',
 221              "ALTER TABLE $t_custom_field_table ADD display_resolve BOOL NOT NULL default '0'" );
 222  
 223      $upgrades[] = new SQLUpgrade(
 224              'custom_fields-2',
 225              'Allow custom fields to be set/required for resolve/close/report/update',
 226              "ALTER TABLE $t_custom_field_table ADD display_close BOOL NOT NULL default '0'" );
 227  
 228      $upgrades[] = new SQLUpgrade(
 229              'custom_fields-3',
 230              'Allow custom fields to be set/required for resolve/close/report/update',
 231              "ALTER TABLE $t_custom_field_table ADD require_report BOOL NOT NULL default '0'" );
 232  
 233      $upgrades[] = new SQLUpgrade(
 234              'custom_fields-4',
 235              'Allow custom fields to be set/required for resolve/close/report/update',
 236              "ALTER TABLE $t_custom_field_table ADD require_update BOOL NOT NULL default '0'" );
 237  
 238      $upgrades[] = new SQLUpgrade(
 239              'custom_fields-5',
 240              'Allow custom fields to be set/required for resolve/close/report/update',
 241              "ALTER TABLE $t_custom_field_table ADD require_resolve BOOL NOT NULL default '0'" );
 242  
 243      $upgrades[] = new SQLUpgrade(
 244              'custom_fields-6',
 245              'Allow custom fields to be set/required for resolve/close/report/update',
 246              "ALTER TABLE $t_custom_field_table ADD require_close BOOL NOT NULL default '0'" );
 247  
 248      $upgrades[] = new SQLUpgrade(
 249              'version_remove_pk',
 250              'Remove project_id+version primary key',
 251              "ALTER TABLE $t_project_version_table DROP PRIMARY KEY" );
 252  
 253      $upgrades[] = new SQLUpgrade(
 254              'version_add_version_',
 255              'Add id to version table and use it as primary key',
 256              "ALTER TABLE $t_project_version_table ADD id INT( 7 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST" );
 257  
 258      $upgrades[] = new SQLUpgrade(
 259              'version_add_project_',
 260              'Add a unique index for project_id + version combination.',
 261              "ALTER TABLE $t_project_version_table ADD UNIQUE project_version ( project_id , version )" );
 262  
 263      $upgrades[] = new SQLUpgrade(
 264              'version_add_descript',
 265              'Add description field to versions.',
 266              "ALTER TABLE $t_project_version_table ADD description TEXT NOT NULL" );
 267  
 268      $upgrades[] = new SQLUpgrade(
 269              'version_add_released',
 270              'Add released flag to determine whether the version was released or still a future release.',
 271              "ALTER TABLE $t_project_version_table ADD released TINYINT( 1 ) DEFAULT '1' NOT NULL" );
 272  
 273      # ======================================================================
 274      # Author: Marcello Scata' <marcelloscata at users.sourceforge.net> ITALY
 275      # ======================================================================
 276      # UPGRADE THE DATABASE TO IMPLEMENT THE RELATIONSHIPS
 277      # --------------------------------------------------------
 278      # The script executes the following steps:
 279      # - Add index on source_bug_id field in mantis_bug_relationship_table
 280      # - Add index on destination_bug_id field in mantis_bug_relationship_table
 281      # - For each bug with the duplicate_id field filled out:
 282      #      Check if there is already a relationship set between bug and duplicate bug
 283      #      if yes then do nothing and continue with the next bug
 284      #      if no then
 285      #         add the relationship between bug and duplicate bug
 286      #         search in history of bug the line in which is recorded the duplicate id information
 287      #         and replace it with the appropriate history record for relationship (same user id, same time-stamp)
 288      #         add an history record in the duplicate bug with same user id, same time-stamp with bug
 289      # - THE CONTENT OF THE DUPLICATE_ID FIELD IS NOT MODIFIED
 290      # --------------------------------------------------------
 291  
 292      $upgrades[] = new FunctionUpgrade(
 293          'relationship-1',
 294          'Add index on source_bug_id field in mantis_bug_relationship_table',
 295          'upgrade_0_18_relationship_1' );
 296  
 297  	function upgrade_0_18_relationship_1() {
 298          global $t_bug_relationship_table;
 299  
 300          if ( !db_key_exists_on_field( $t_bug_relationship_table, 'source_bug_id', 'MUL' ) ) {
 301              $query = "ALTER TABLE $t_bug_relationship_table ADD INDEX ( source_bug_id )";
 302              $result = @db_query( $query );
 303  
 304              if ( false == $result ) {
 305                  return false;
 306              }
 307          }
 308  
 309          return true;
 310      }
 311  
 312      $upgrades[] = new FunctionUpgrade(
 313          'relationship-2',
 314          'Add index on destination_bug_id field in mantis_bug_relationship_table',
 315          'upgrade_0_18_relationship_2' );
 316  
 317  	function upgrade_0_18_relationship_2() {
 318          global $t_bug_relationship_table;
 319  
 320          if ( !db_key_exists_on_field( $t_bug_relationship_table, 'destination_bug_id', 'MUL' ) ) {
 321              $query = "ALTER TABLE $t_bug_relationship_table ADD INDEX ( destination_bug_id )";
 322              $result = @db_query( $query );
 323  
 324              if ( false == $result ) {
 325                  return false;
 326              }
 327          }
 328  
 329          return true;
 330      }
 331  
 332      $upgrades[] = new FunctionUpgrade(
 333          'relationship-3',
 334          'Translate duplicate id information in a new duplicate relationship',
 335          'upgrade_0_18_relationship_3' );
 336  
 337  	function upgrade_0_18_relationship_3() {
 338          global $t_bug_relationship_table, $t_bug_table, $t_bug_history_table;
 339  
 340          $query = "SELECT id, duplicate_id
 341                     FROM $t_bug_table
 342                     WHERE duplicate_id != '';";
 343          $result = db_query( $query );
 344          $t_count = db_num_rows( $result );
 345  
 346          for ( $i = 0 ; $i < $t_count ; $i++ ) {
 347              $t_bug = db_fetch_array( $result );
 348              $t_bug_id = $t_bug['id'];
 349              $t_duplicate_bug_id = $t_bug['duplicate_id'];
 350  
 351              $query = "SELECT id
 352                          FROM $t_bug_relationship_table
 353                          WHERE
 354                              (source_bug_id = '$t_bug_id' and
 355                              destination_bug_id = '$t_duplicate_bug_id') or
 356                              (destination_bug_id = '$t_bug_id' and
 357                              source_bug_id = '$t_duplicate_bug_id');";
 358              $result2 = db_query( $query );
 359              $t_count2 = db_num_rows( $result2 );
 360  
 361              if( $t_count2 > 0 ) {
 362                  continue;
 363              }
 364  
 365              $query = "INSERT INTO $t_bug_relationship_table
 366                      ( source_bug_id, destination_bug_id, relationship_type )
 367                      VALUES
 368                      ( '" . $t_bug_id . "', '" . $t_duplicate_bug_id . "', '" . BUG_DUPLICATE . "')";
 369              db_query( $query );
 370  
 371              $query = "SELECT id, user_id, date_modified
 372                          FROM $t_bug_history_table
 373                          WHERE
 374                              bug_id = '$t_bug_id' and
 375                              field_name = 'duplicate_id' and
 376                              new_value = '$t_duplicate_bug_id';";
 377              $result2 = db_query( $query );
 378              $t_count2 = db_num_rows( $result2 );
 379  
 380              if ( $t_count2 < 1) {
 381                  continue;
 382              }
 383  
 384              $t_history_bug = db_fetch_array( $result2 );
 385              $t_history_id = $t_history_bug['id'];
 386              $t_history_user_id = $t_history_bug['user_id'];
 387              $t_duplicate_bug_last_update = $t_history_bug['date_modified'];
 388  
 389              $query = "UPDATE $t_bug_history_table
 390                  SET field_name = '',
 391                      old_value = '" . BUG_DUPLICATE . "',
 392                      type = '" . BUG_ADD_RELATIONSHIP . "'
 393                  WHERE id='$t_history_id'";
 394              db_query( $query );
 395  
 396              $query = "INSERT INTO $t_bug_history_table
 397                  ( user_id, bug_id, date_modified, type, old_value, new_value )
 398                  VALUES
 399                  ( '$t_history_user_id', '$t_duplicate_bug_id', '" . $t_duplicate_bug_last_update . "', " .
 400                  BUG_ADD_RELATIONSHIP . ", " . BUG_HAS_DUPLICATE . ", '$t_bug_id' )";
 401              db_query( $query );
 402          }
 403  
 404          return true;
 405      }
 406  
 407      $upgrades[] = new FunctionUpgrade(
 408          'relationship-4',
 409          'Fix swapped value in duplicate relationship',
 410          'upgrade_0_18_relationship_4' );
 411  
 412  	function upgrade_0_18_relationship_4() {
 413          global $t_bug_relationship_table, $t_bug_table;
 414  
 415          $query = "SELECT id, duplicate_id
 416                     FROM $t_bug_table
 417                     WHERE duplicate_id != '';";
 418          $result = db_query( $query );
 419          $t_count = db_num_rows( $result );
 420  
 421          for ( $i = 0 ; $i < $t_count ; $i++ ) {
 422              $t_bug = db_fetch_array( $result );
 423              $t_bug_id = $t_bug['id'];
 424              $t_duplicate_bug_id = $t_bug['duplicate_id'];
 425  
 426              $query = "SELECT id
 427                          FROM $t_bug_relationship_table
 428                          WHERE
 429                              relationship_type = '" . BUG_DUPLICATE . "' and
 430                              source_bug_id = '$t_duplicate_bug_id' and
 431                              destination_bug_id = '$t_bug_id';";
 432              $result2 = db_query( $query );
 433              $t_count2 = db_num_rows( $result2 );
 434  
 435              if( $t_count2 != 1 ) {
 436                  continue;
 437              }
 438  
 439              $t_relationship = db_fetch_array( $result2 );
 440              $t_relationship_id = $t_relationship['id'];
 441  
 442              $query = "UPDATE $t_bug_relationship_table
 443                  SET source_bug_id = '$t_bug_id',
 444                  destination_bug_id = '$t_duplicate_bug_id'
 445                  WHERE id='$t_relationship_id'";
 446              db_query( $query );
 447          }
 448  
 449          return true;
 450      }
 451  
 452          if ( config_get_global( 'differentiate_duplicates' ) ) {
 453              $upgrades[] = new SQLUpgrade(
 454                  'user-duplicate',
 455                  'Add realname duplicate field to user table',
 456                  "ALTER TABLE $t_user_table ADD duplicate_realname INT( 1 ) DEFAULT '0'" );
 457  
 458              $upgrades[] = new FunctionUpgrade(
 459                  'user-duplicate-fix',
 460                  'set values for duplicate_realname',
 461                  'upgrade_0_18_user_duplicate' );
 462          }
 463  
 464  	function upgrade_0_18_user_duplicate() {
 465          global $t_user_table;
 466  
 467          $query = "SELECT realname FROM $t_user_table
 468                                  WHERE realname != ''
 469                                  GROUP BY realname
 470                                  HAVING count(realname) > 1";
 471          $result = db_query( $query );
 472          $t_count = db_num_rows( $result );
 473          for ( $i = 0 ; $i < $t_count ; $i++ ) {
 474              $t_row = db_fetch_array( $result );
 475              $t_name = $t_row['realname'];
 476              $query = "UPDATE $t_user_table
 477                  SET duplicate_realname = 'Y'
 478                  WHERE realname='$t_name'";
 479              db_query( $query );
 480          }
 481  
 482          return true;
 483      }
 484  
 485  
 486      $upgrades[] = new SQLUpgrade(
 487              'cat_user_id_unsigned',
 488              'Change the user_id in mantis_project_category_table to unsigned int.',
 489              "ALTER TABLE $t_project_category_table CHANGE user_id user_id INT( 7 ) UNSIGNED DEFAULT '0' NOT NULL" );
 490  
 491      $upgrades[] = new SQLUpgrade(
 492              'custom_fields-7',
 493              'Allow custom fields to be hidden/displayed for report/update',
 494              "ALTER TABLE $t_custom_field_table ADD display_report BOOL NOT NULL default '1'" );
 495  
 496      $upgrades[] = new SQLUpgrade(
 497              'custom_fields-8',
 498              'Allow custom fields to be hidden/displayed for report/update',
 499              "ALTER TABLE $t_custom_field_table ADD display_update BOOL NOT NULL default '1'" );
 500  
 501      $upgrades[] = new SQLUpgrade(
 502              'custom_fields-9',
 503              'Rename Column',
 504              "ALTER TABLE $t_custom_field_table ADD require_resolved BOOL NOT NULL default '0'" );
 505  
 506      $upgrades[] = new SQLUpgrade(
 507              'custom_fields-10',
 508              'Rename Column',
 509              "UPDATE $t_custom_field_table SET require_resolved = require_resolve" );
 510  
 511      $upgrades[] = new SQLUpgrade(
 512              'custom_fields-11',
 513              'Rename Column',
 514              "ALTER TABLE $t_custom_field_table DROP require_resolve" );
 515  
 516      $upgrades[] = new SQLUpgrade(
 517              'custom_fields-12',
 518              'Rename Column',
 519              "ALTER TABLE $t_custom_field_table ADD display_resolved BOOL NOT NULL default '0'" );
 520  
 521      $upgrades[] = new SQLUpgrade(
 522              'custom_fields-13',
 523              'Rename Column',
 524              "UPDATE $t_custom_field_table SET display_resolved = display_resolve" );
 525  
 526      $upgrades[] = new SQLUpgrade(
 527              'custom_fields-14',
 528              'Rename Column',
 529              "ALTER TABLE $t_custom_field_table DROP display_resolve" );
 530  
 531      $upgrades[] = new SQLUpgrade(
 532              'custom_fields-15',
 533              'Rename Column',
 534              "ALTER TABLE $t_custom_field_table ADD display_closed BOOL NOT NULL default '0'" );
 535  
 536      $upgrades[] = new SQLUpgrade(
 537              'custom_fields-16',
 538              'Rename Column',
 539              "UPDATE $t_custom_field_table SET display_closed = display_close" );
 540  
 541      $upgrades[] = new SQLUpgrade(
 542              'custom_fields-17',
 543              'Rename Column',
 544              "ALTER TABLE $t_custom_field_table DROP display_close" );
 545  
 546      $upgrades[] = new SQLUpgrade(
 547              'custom_fields-18',
 548              'Rename Column',
 549              "ALTER TABLE $t_custom_field_table ADD require_closed BOOL NOT NULL default '0'" );
 550  
 551      $upgrades[] = new SQLUpgrade(
 552              'custom_fields-19',
 553              'Rename Column',
 554              "UPDATE $t_custom_field_table SET require_closed = require_close" );
 555  
 556      $upgrades[] = new SQLUpgrade(
 557              'custom_fields-20',
 558              'Rename Column',
 559              "ALTER TABLE $t_custom_field_table DROP require_close" );
 560  
 561      $upgrades[] = new FunctionUpgrade(
 562          'lost-password',
 563          'Add the necessary columns for managing lost passwords',
 564          'lostpassword_fix_1' );
 565  
 566  	function lostpassword_fix_1() {
 567          global $t_user_table;
 568  
 569          if ( !db_field_exists( 'failed_login_count', $t_user_table ) ) {
 570              $query = "ALTER TABLE $t_user_table ADD failed_login_count INT(2) DEFAULT '0' NOT NULL
 571                  AFTER login_count";
 572  
 573              $result = @db_query( $query );
 574  
 575              if ( false == $result ) {
 576                  return false;
 577              }
 578          }
 579  
 580          if ( !db_field_exists( 'lost_password_in_progress_count', $t_user_table ) ) {
 581              $query = "ALTER TABLE $t_user_table ADD lost_password_in_progress_count INT(2) DEFAULT '0' NOT NULL
 582                  AFTER login_count";
 583  
 584              $result = @db_query( $query );
 585  
 586              if ( false == $result ) {
 587                  return false;
 588              }
 589          }
 590  
 591          return true;
 592      }
 593  
 594      $upgrades[] = new FunctionUpgrade(
 595              'delete-admin-over',
 596              'Delete any project level access overrides for admin users',
 597              'upgrade_0_18_del_admin_override' );
 598  
 599  	function upgrade_0_18_del_admin_override() {
 600          global $t_user_table, $t_project_user_list_table;
 601  
 602          $t_admin = ADMINISTRATOR;
 603          $query = "select p.user_id
 604                  FROM $t_project_user_list_table p, $t_user_table u
 605                  WHERE ( ( p.user_id = u.id ) AND ( u.access_level >= $t_admin ) )";
 606          $result = db_query( $query );
 607          $t_count = db_num_rows( $result );
 608          for ( $i = 0 ; $i < $t_count ; $i++ ) {
 609              $t_row = db_fetch_array( $result );
 610              $t_user = $t_row['user_id'];
 611              $query = "DELETE FROM $t_project_user_list_table
 612                  WHERE user_id=$t_user";
 613              db_query( $query );
 614          }
 615  
 616          return true;
 617      }
 618  
 619      $upgrades[] = new SQLUpgrade(
 620              '0.18-bugnote-limit',
 621              'Add email_bugnote_limit to user preference table',
 622              "ALTER TABLE $t_user_pref_table ADD email_bugnote_limit INT( 2 ) NOT NULL AFTER email_on_new_minimum_severity" );
 623  
 624      $upgrades[] = new SQLUpgrade(
 625              '0.18-bugnote-order',
 626              'Add bugnote_order to user preference table',
 627              "ALTER TABLE $t_user_pref_table ADD bugnote_order VARCHAR( 4 ) NOT NULL DEFAULT '" . config_get_global( 'default_bugnote_order' ) . "' AFTER redirect_delay" );
 628  
 629      $upgrades[] = new FunctionUpgrade(
 630              'cb_ml_upgrade',
 631              'Upgrade custom field types (checkbox, list, multilist) to support advanced filtering',
 632              'upgrade_0_19_checkbox_list_multilist_upgrade' );
 633  
 634  	function upgrade_0_19_checkbox_list_multilist_upgrade() {
 635          global $t_custom_field_string_table, $t_custom_field_table;
 636          $t_checkbox = CUSTOM_FIELD_TYPE_CHECKBOX;
 637          $t_multilist = CUSTOM_FIELD_TYPE_MULTILIST;
 638          $query = "SELECT f.field_id, f.bug_id, f.value FROM $t_custom_field_string_table f
 639                LEFT JOIN $t_custom_field_table s ON f.field_id = s.id
 640                WHERE (s.type = $t_checkbox) OR (s.type = $t_multilist)";
 641          $result = db_query( $query );
 642          $t_count = db_num_rows( $result );
 643          for ( $i = 0; $i < $t_count; $i++ ) {
 644              $t_row = db_fetch_array( $result );
 645              $t_value = $t_row['value'];
 646              if ( '' != $t_value ) {
 647                  $t_field_id = $t_row['field_id'];
 648                  $t_bug_id = $t_row['bug_id'];
 649                  $query = "UPDATE $t_custom_field_string_table
 650                        SET value = '|$t_value|'
 651                        WHERE (field_id = $t_field_id) AND (bug_id = $t_bug_id)";
 652                  db_query( $query );
 653              }
 654          }
 655  
 656          return true;
 657      }
 658  
 659      return $upgrades;
 660  ?>


Généré le : Thu Nov 29 09:42:17 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics