/** * Detach a tag from a bug. * @param integer Tag ID * @param integer Bug ID * @param boolean Add history entries to bug * @param integer User Id (or null for current logged in user) */ function tag_bug_detach($p_tag_id, $p_bug_id, $p_add_history = true, $p_user_id = null) { if ($p_user_id === null) { $t_user_id = auth_get_current_user_id(); } else { $t_user_id = $p_user_id; } if (!tag_bug_is_attached($p_tag_id, $p_bug_id)) { trigger_error(TAG_NOT_ATTACHED, ERROR); } $t_tag_row = tag_bug_get_row($p_tag_id, $p_bug_id); if ($t_user_id == tag_get_field($p_tag_id, 'user_id') || $t_user_id == $t_tag_row['user_id']) { $t_detach_level = config_get('tag_detach_own_threshold'); } else { $t_detach_level = config_get('tag_detach_threshold'); } access_ensure_bug_level($t_detach_level, $p_bug_id, $t_user_id); $c_tag_id = db_prepare_int($p_tag_id); $c_bug_id = db_prepare_int($p_bug_id); $t_bug_tag_table = config_get('mantis_bug_tag_table'); $query = "DELETE FROM {$t_bug_tag_table} \r\n\t\t\t\t\tWHERE tag_id='{$c_tag_id}' AND bug_id='{$c_bug_id}'"; db_query($query); if ($p_add_history) { $t_tag_name = tag_get_field($p_tag_id, 'name'); history_log_event_special($p_bug_id, TAG_DETACHED, $t_tag_name); } return true; }
/** * Detach a tag from a bug. * @param integer Tag ID * @param integer Bug ID * @param boolean Add history entries to bug * @param integer User Id (or null for current logged in user) */ function tag_bug_detach($p_tag_id, $p_bug_id, $p_add_history = true, $p_user_id = null) { if ($p_user_id === null) { $t_user_id = auth_get_current_user_id(); } else { $t_user_id = $p_user_id; } if (!tag_bug_is_attached($p_tag_id, $p_bug_id)) { trigger_error(TAG_NOT_ATTACHED, ERROR); } $t_tag_row = tag_bug_get_row($p_tag_id, $p_bug_id); if ($t_user_id == tag_get_field($p_tag_id, 'user_id') || $t_user_id == $t_tag_row['user_id']) { $t_detach_level = config_get('tag_detach_own_threshold'); } else { $t_detach_level = config_get('tag_detach_threshold'); } access_ensure_bug_level($t_detach_level, $p_bug_id, $t_user_id); $c_tag_id = db_prepare_int($p_tag_id); $c_bug_id = db_prepare_int($p_bug_id); $t_bug_tag_table = db_get_table('bug_tag'); $query = "DELETE FROM {$t_bug_tag_table}\n\t\t\t\t\tWHERE tag_id=" . db_param() . ' AND bug_id=' . db_param(); db_query_bound($query, array($c_tag_id, $c_bug_id)); if ($p_add_history) { $t_tag_name = tag_get_field($p_tag_id, 'name'); history_log_event_special($p_bug_id, TAG_DETACHED, $t_tag_name); } # updated the last_updated date bug_update_date($p_bug_id); return true; }
# Copyright (C) 2002 - 2007 Mantis Team - mantisbt-dev@lists.sourceforge.net # Mantis is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # Mantis is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Mantis. If not, see <http://www.gnu.org/licenses/>. # -------------------------------------------------------- # $Id: tag_detach.php,v 1.2.2.1 2007-10-13 22:34:45 giallu Exp $ # -------------------------------------------------------- require_once 'core.php'; $t_core_path = config_get('core_path'); require_once $t_core_path . 'tag_api.php'; form_security_validate('tag_detach'); $f_tag_id = gpc_get_int('tag_id'); $f_bug_id = gpc_get_int('bug_id'); $t_user_id = auth_get_current_user_id(); $t_tag_row = tag_get($f_tag_id); $t_tag_bug_row = tag_bug_get_row($f_tag_id, $f_bug_id); if (!(access_has_bug_level(config_get('tag_detach_threshold'), $f_bug_id, $t_user_id) || $t_user_id == $t_tag_bug_row['user_id'] && access_has_bug_level(config_get('tag_detach_own_threshold'), $f_bug_id, $t_user_id))) { access_denied(); } tag_bug_detach($f_tag_id, $f_bug_id); form_security_purge('tag_detach'); print_successful_redirect_to_bug($f_bug_id);