Esempio n. 1
0
 public function addVersion($projID, $version)
 {
     if (MANTIS_LOCAL) {
         if (version_add($projID, $version, true, $version)) {
             $t_version_id = version_get_id($version, $projID);
             if (!is_blank($v_date_order)) {
                 $t_version = version_get($t_version_id);
                 $t_version->date_order = date("Y-m-d H:i:s", strtotime($v_date_order));
                 version_update($t_version);
             }
         }
     } else {
         $this->client->mc_project_version_add(MANTIS_USER, MANTIS_PWD, array('name' => $version, 'project_id' => $projID, 'description' => $version, 'released' => true));
     }
 }
Esempio n. 2
0
/**
 * Submit the specified version details.
 *
 * @param string $p_username  The name of the user trying to update the issue.
 * @param string $p_password  The password of the user.
 * @param integer $p_version_id A version's id
 * @param Array $p_version  A ProjectVersionData structure containing information about the new verison.
 * @return bool returns true or false depending on the success of the update action
 */
function mc_project_version_update($p_username, $p_password, $p_version_id, $p_version)
{
    $t_user_id = mci_check_login($p_username, $p_password);
    if ($t_user_id === false) {
        return mci_soap_fault_login_failed();
    }
    if (is_blank($p_version_id)) {
        return new soap_fault('Client', '', 'Mandatory field "version_id" was missing');
    }
    if (!version_exists($p_version_id)) {
        return new soap_fault('Client', '', "Version '{$p_version_id}' does not exist.");
    }
    $t_project_id = $p_version['project_id'];
    $t_name = $p_version['name'];
    $t_released = $p_version['released'];
    $t_description = $p_version['description'];
    $t_date_order = $p_version['date_order'];
    if (is_blank($t_project_id)) {
        return new soap_fault('Client', '', 'Mandatory field "project_id" was missing');
    }
    if (!project_exists($t_project_id)) {
        return new soap_fault('Client', '', "Project '{$t_project_id}' does not exist.");
    }
    if (!mci_has_readwrite_access($t_user_id, $t_project_id)) {
        return mci_soap_fault_access_denied($t_user_id);
    }
    if (!mci_has_access(config_get('manage_project_threshold'), $t_user_id, $t_project_id)) {
        return mci_soap_fault_access_denied($t_user_id);
    }
    if (is_blank($t_name)) {
        return new soap_fault('Client', '', 'Mandatory field "name" was missing');
    }
    # check for duplicates
    $t_old_version_name = version_get_field($p_version_id, 'version');
    if (strtolower($t_old_version_name) != strtolower($t_name) && !version_is_unique($t_name, $t_project_id)) {
        return new soap_fault('Client', '', 'Version exists for project', 'The version you attempted to update already exists for this project');
    }
    if ($t_released === false) {
        $t_released = VERSION_FUTURE;
    } else {
        $t_released = VERSION_RELEASED;
    }
    $t_version_data = new VersionData();
    $t_version_data->id = $p_version_id;
    $t_version_data->project_id = $t_project_id;
    $t_version_data->version = $t_name;
    $t_version_data->description = $t_description;
    $t_version_data->released = $t_released;
    $t_version_data->date_order = date("Y-m-d H:i:s", strtotime($t_date_order));
    return version_update($t_version_data);
}
Esempio n. 3
0
/**
 * Submit the specified version details.
 *
 * @param string $p_username  The name of the user trying to update the issue.
 * @param string $p_password  The password of the user.
 * @param integer $p_version_id A version's id
 * @param Array $p_version  A ProjectVersionData structure containing information about the new verison.
 * @return bool returns true or false depending on the success of the update action
 */
function mc_project_version_update($p_username, $p_password, $p_version_id, $p_version)
{
    $t_user_id = mci_check_login($p_username, $p_password);
    if ($t_user_id === false) {
        return new soap_fault('Client', '', 'Access Denied', 'Username/password combination was incorrect');
    }
    if (!mci_has_administrator_access($t_user_id)) {
        return new soap_fault('Client', '', 'Access Denied', 'User does not have administrator access');
    }
    if (is_blank($p_version_id)) {
        return new soap_fault('Client', '', 'Mandatory field "version_id" was missing');
    }
    if (!version_exists($p_version_id)) {
        return new soap_fault('Client', '', "Version '{$p_version_id}' does not exist.");
    }
    extract($p_version, EXTR_PREFIX_ALL, 'v');
    if (is_blank($v_project_id)) {
        return new soap_fault('Client', '', 'Mandatory field "project_id" was missing');
    }
    if (!project_exists($v_project_id)) {
        return new soap_fault('Client', '', "Version '{$v_project_id}' does not exist.");
    }
    if (is_blank($v_name)) {
        return new soap_fault('Client', '', 'Mandatory field "name" was missing');
    }
    # check for duplicates
    $t_old_version_name = version_get_field($p_version_id, 'version');
    if (strtolower($t_old_version_name) != strtolower($v_name) && !version_is_unique($v_name, $v_project_id)) {
        return new soap_fault('Client', '', 'Version exists for project', 'The version you attempted to update already exists for this project');
    }
    if ($v_released === false) {
        $v_released = VERSION_FUTURE;
    } else {
        $v_released = VERSION_RELEASED;
    }
    $t_version_data = new VersionData();
    $t_version_data->id = $p_version_id;
    $t_version_data->project_id = $v_project_id;
    $t_version_data->version = $v_name;
    $t_version_data->description = $v_description;
    $t_version_data->released = $v_released;
    $t_version_data->date_order = date("Y-m-d H:i:s", strtotime($v_date_order));
    return version_update($t_version_data);
}
        }
        if (is_null($obsolete)) {
            $version->obsolete = false;
        } else {
            if ($obsolete == 'on') {
                $version->obsolete = true;
            }
        }
        if (!is_null($date_order)) {
            $new_date_order = $date_order[$version_index];
            $version->date_order = $new_date_order;
        }
        if (!is_null($type)) {
            $new_type = $type[$version_index];
            if (strlen($new_type) > 0) {
                $new_type_id = $specmanagement_database_api->get_type_id($new_type);
                $specmanagement_database_api->update_version_associated_type($project_id, $version_ids[$version_index], $new_type_id);
            } else {
                $specmanagement_database_api->update_version_associated_type($project_id, $version_ids[$version_index], 9999);
            }
        }
        if (!is_null($description)) {
            $new_description = $description[$version_index];
            $version->description = $new_description;
        }
        version_update($version);
        event_signal('EVENT_MANAGE_VERSION_UPDATE', array($version_id));
    }
}
form_security_purge('plugin_SpecManagement_manage_versions_update');
print_successful_redirect(plugin_page('manage_versions', true));
$f_date_order = gpc_get_string('date_order');
$f_new_version = gpc_get_string('new_version');
$f_description = gpc_get_string('description');
$f_released = gpc_get_bool('released');
$f_obsolete = gpc_get_bool('obsolete');
access_ensure_project_level(config_get('manage_project_threshold'), $t_version->project_id);
if (is_blank($f_new_version)) {
    trigger_error(ERROR_EMPTY_FIELD, ERROR);
}
$f_new_version = trim($f_new_version);
$t_version->version = $f_new_version;
$t_version->description = $f_description;
$t_version->released = $f_released ? VERSION_RELEASED : VERSION_FUTURE;
$t_version->obsolete = $f_obsolete;
$t_version->date_order = $f_date_order;
version_update($t_version);
event_signal('EVENT_MANAGE_VERSION_UPDATE', array($t_version->id));
form_security_purge('manage_proj_ver_update');
$t_redirect_url = 'manage_proj_edit_page.php?project_id=' . $t_version->project_id;
html_page_top(null, $t_redirect_url);
?>

<br />
<div align="center">
<?php 
echo lang_get('operation_successful') . '<br />';
print_bracket_link($t_redirect_url, lang_get('proceed'));
?>
</div>

<?php 
Esempio n. 6
0
/**
 * Submit the specified version details.
 *
 * @param string   $p_username   The name of the user trying to update the issue.
 * @param string   $p_password   The password of the user.
 * @param integer  $p_version_id A version's id.
 * @param stdClass $p_version    A ProjectVersionData structure containing information about the new version.
 * @return boolean returns true or false depending on the success of the update action
 */
function mc_project_version_update($p_username, $p_password, $p_version_id, stdClass $p_version)
{
    global $g_project_override;
    $t_user_id = mci_check_login($p_username, $p_password);
    if ($t_user_id === false) {
        return mci_soap_fault_login_failed();
    }
    if (is_blank($p_version_id)) {
        return SoapObjectsFactory::newSoapFault('Client', 'Mandatory field "version_id" was missing');
    }
    if (!version_exists($p_version_id)) {
        return SoapObjectsFactory::newSoapFault('Client', 'Version \'' . $p_version_id . '\' does not exist.');
    }
    $p_version = SoapObjectsFactory::unwrapObject($p_version);
    $t_project_id = $p_version['project_id'];
    $g_project_override = $t_project_id;
    $t_name = $p_version['name'];
    $t_released = $p_version['released'];
    $t_description = $p_version['description'];
    $t_date_order = isset($p_version['date_order']) ? SoapObjectsFactory::parseDateTimeString($p_version['date_order']) : null;
    $t_obsolete = isset($p_version['obsolete']) ? $p_version['obsolete'] : false;
    if (is_blank($t_project_id)) {
        return SoapObjectsFactory::newSoapFault('Client', 'Mandatory field "project_id" was missing');
    }
    if (!project_exists($t_project_id)) {
        return SoapObjectsFactory::newSoapFault('Client', 'Project \'' . $t_project_id . '\' does not exist.');
    }
    if (!mci_has_readwrite_access($t_user_id, $t_project_id)) {
        return mci_soap_fault_access_denied($t_user_id);
    }
    if (!mci_has_access(config_get('manage_project_threshold'), $t_user_id, $t_project_id)) {
        return mci_soap_fault_access_denied($t_user_id);
    }
    if (is_blank($t_name)) {
        return SoapObjectsFactory::newSoapFault('Client', 'Mandatory field "name" was missing');
    }
    # check for duplicates
    $t_old_version_name = version_get_field($p_version_id, 'version');
    if (strtolower($t_old_version_name) != strtolower($t_name) && !version_is_unique($t_name, $t_project_id)) {
        return SoapObjectsFactory::newSoapFault('Client', 'Version exists for project');
    }
    if ($t_released === false) {
        $t_released = VERSION_FUTURE;
    } else {
        $t_released = VERSION_RELEASED;
    }
    $t_version_data = new VersionData();
    $t_version_data->id = $p_version_id;
    $t_version_data->project_id = $t_project_id;
    $t_version_data->version = $t_name;
    $t_version_data->description = $t_description;
    $t_version_data->released = $t_released;
    $t_version_data->date_order = $t_date_order;
    $t_version_data->obsolete = $t_obsolete;
    return version_update($t_version_data);
}
if ($f_copy_from) {
    $t_src_project_id = $f_other_project_id;
    $t_dst_project_id = $f_project_id;
} else {
    if ($f_copy_to) {
        $t_src_project_id = $f_project_id;
        $t_dst_project_id = $f_other_project_id;
    } else {
        trigger_error(ERROR_VERSION_NO_ACTION, ERROR);
    }
}
# Get all active versions (i.e. exclude obsolete ones)
$t_rows = version_get_all_rows($t_src_project_id);
foreach ($t_rows as $t_row) {
    $t_dst_version_id = version_get_id($t_row['version'], $t_dst_project_id);
    if ($t_dst_version_id === false) {
        # Version does not exist in target project
        version_add($t_dst_project_id, $t_row['version'], $t_row['released'], $t_row['description'], $t_row['date_order']);
    } else {
        # Update existing version
        # Since we're ignoring obsolete versions, those marked as such in the
        # source project after an earlier copy operation will not be updated
        # in the target project.
        $t_version_data = new VersionData($t_row);
        $t_version_data->id = $t_dst_version_id;
        $t_version_data->project_id = $t_dst_project_id;
        version_update($t_version_data);
    }
}
form_security_purge('manage_proj_ver_copy');
print_header_redirect('manage_proj_edit_page.php?project_id=' . $f_project_id);