[ Index ]
 

Code source de Mantis 1.1.0rc3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/ -> manage_config_workflow_set.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      # --------------------------------------------------------
  21      # $Id: manage_config_workflow_set.php,v 1.9.2.1 2007-10-13 22:33:26 giallu Exp $
  22      # --------------------------------------------------------
  23  
  24      require_once ( 'core.php' );
  25  
  26      $t_core_path = config_get( 'core_path' );
  27      require_once( $t_core_path.'email_api.php' );
  28  
  29      auth_reauthenticate();
  30  
  31      $t_can_change_level = min( config_get_access( 'notify_flags' ), config_get_access( 'default_notify_flags' ) );
  32      access_ensure_project_level( $t_can_change_level );
  33  
  34      $t_redirect_url = 'manage_config_workflow_page.php';
  35      $t_project = helper_get_current_project();
  36      $t_access = current_user_get_access_level();
  37  
  38      html_page_top1( lang_get( 'manage_workflow_config' ) );
  39      html_meta_redirect( $t_redirect_url );
  40      html_page_top2();
  41  
  42      # process the changes to threshold values
  43      $t_valid_thresholds = array( 'bug_submit_status', 'bug_resolved_status_threshold', 'bug_reopen_status' );
  44  
  45      foreach( $t_valid_thresholds as $t_threshold ) {
  46          if( config_get_access( $t_threshold ) <= $t_access ) {
  47              $f_value = gpc_get( 'threshold_' . $t_threshold );
  48              $f_access = gpc_get( 'access_' . $t_threshold );
  49              if ( $f_value != config_get( $t_threshold ) ) {
  50                  config_set( $t_threshold, $f_value, NO_USER, $t_project, $f_access );
  51              }
  52          }
  53      }
  54  
  55      # process the workflow by reversing the flags to a matrix and creating the appropriate string
  56      if( config_get_access( 'status_enum_workflow' ) <= $t_access ) {
  57          $f_value = gpc_get( 'flag', array() );
  58          $f_access = gpc_get( 'workflow_access' );
  59          $t_matrix = array();
  60  
  61          foreach( $f_value as $t_transition ) {
  62              list( $t_from, $t_to ) = split( ':', $t_transition );
  63              $t_matrix[$t_from][$t_to] = '';
  64          }
  65          $t_statuses = get_enum_to_array( config_get( 'status_enum_string' ) );
  66          foreach( $t_statuses as $t_state => $t_label) {
  67              $t_workflow_row = '';
  68              $t_default = gpc_get_int( 'default_' . $t_state );
  69              if ( isset( $t_matrix[$t_state] ) && isset( $t_matrix[$t_state][$t_default] ) ) {
  70                  $t_workflow_row .= $t_default . ':' . get_enum_element( 'status', $t_default );
  71                  unset( $t_matrix[$t_state][$t_default] );
  72                  $t_first = false;
  73              } else {
  74                  # error default state isn't in the matrix
  75                  echo '<p>' . sprintf( lang_get( 'default_not_in_flow' ), get_enum_element( 'status', $t_default ), get_enum_element( 'status', $t_state ) )  . '</p>';
  76                  $t_first = true;
  77              }
  78              if ( isset( $t_matrix[$t_state] ) ) {
  79                  foreach ( $t_matrix[$t_state] as $t_next_state => $t_junk ) {
  80                      if ( false == $t_first ) {
  81                          $t_workflow_row .= ',';
  82                      }
  83                      $t_workflow_row .= $t_next_state . ':' . get_enum_element( 'status', $t_next_state );
  84                      $t_first = false;
  85                  }
  86              }
  87              if ( '' <> $t_workflow_row ) {
  88                  $t_workflow[$t_state] = $t_workflow_row;
  89              }
  90          }
  91          if ( $t_workflow != config_get( 'status_enum_workflow' ) ) {
  92              config_set( 'status_enum_workflow', $t_workflow, NO_USER, $t_project, $f_access );
  93          }
  94      }
  95  
  96      # process the access level changes
  97      if( config_get_access( 'status_enum_workflow' ) <= $t_access ) {
  98          # get changes to access level to change these values
  99          $f_access = gpc_get( 'status_access' );
 100  
 101          # walk through the status labels to set the status threshold
 102          $t_enum_status = explode_enum_string( config_get( 'status_enum_string' ) );
 103          $t_set_status = array();
 104          foreach( $t_statuses as $t_status_id => $t_status_label) {
 105              $f_level = gpc_get( 'access_change_' . $t_status_id );
 106              if ( NEW_ == $t_status_id ) {
 107                  if ( (int)$f_level != config_get( 'report_bug_threshold' ) ) {
 108                      config_set( 'report_bug_threshold', (int)$f_level, ALL_USERS, $t_project, $f_access );
 109                  }
 110              } else {
 111                  $t_set_status[$t_status_id] = (int)$f_level;
 112              }
 113          }
 114  
 115          if ( $t_set_status != config_get( 'set_status_threshold' ) ) {
 116              config_set( 'set_status_threshold', $t_set_status, ALL_USERS, $t_project, $f_access );
 117          }
 118      }
 119  ?>
 120  
 121  <br />
 122  <div align="center">
 123  <?php
 124      echo lang_get( 'operation_successful' ) . '<br />';
 125      print_bracket_link( $t_redirect_url, lang_get( 'proceed' ) );
 126  ?>
 127  </div>
 128  
 129  <?php html_page_bottom1( __FILE__ ) ?>


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