/** * Sets the value of the given configuration option to the given value * If the configuration option does not exist, an ERROR is triggered * * @param string $p_option Configuration option name. * @param string $p_value Configuration option value. * @param integer $p_user A user identifier. Defaults to NO_USER. * @param integer $p_project A project identifier. Defaults to ALL_PROJECTS. * @param integer $p_access Access level. Defaults to DEFAULT_ACCESS_LEVEL. * @return boolean */ function config_set($p_option, $p_value, $p_user = NO_USER, $p_project = ALL_PROJECTS, $p_access = DEFAULT_ACCESS_LEVEL) { if ($p_access == DEFAULT_ACCESS_LEVEL) { $p_access = config_get_global('admin_site_threshold'); } if (is_array($p_value) || is_object($p_value)) { $t_type = CONFIG_TYPE_COMPLEX; $c_value = json_encode($p_value); } else { if (is_float($p_value)) { $t_type = CONFIG_TYPE_FLOAT; $c_value = (double) $p_value; } else { if (is_int($p_value) || is_numeric($p_value)) { $t_type = CONFIG_TYPE_INT; $c_value = (int) $p_value; } else { $t_type = CONFIG_TYPE_STRING; $c_value = $p_value; } } } if (config_can_set_in_database($p_option)) { # before we set in the database, ensure that the user and project id exist if ($p_project !== ALL_PROJECTS) { project_ensure_exists($p_project); } if ($p_user !== NO_USER) { user_ensure_exists($p_user); } $t_query = 'SELECT COUNT(*) from {config} WHERE config_id = ' . db_param() . ' AND project_id = ' . db_param() . ' AND user_id = ' . db_param(); $t_result = db_query($t_query, array($p_option, (int) $p_project, (int) $p_user)); $t_params = array(); if (0 < db_result($t_result)) { $t_set_query = 'UPDATE {config} SET value=' . db_param() . ', type=' . db_param() . ', access_reqd=' . db_param() . ' WHERE config_id = ' . db_param() . ' AND project_id = ' . db_param() . ' AND user_id = ' . db_param(); $t_params = array((string) $c_value, $t_type, (int) $p_access, $p_option, (int) $p_project, (int) $p_user); } else { $t_set_query = 'INSERT INTO {config} ( value, type, access_reqd, config_id, project_id, user_id ) VALUES (' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ',' . db_param() . ' )'; $t_params = array((string) $c_value, $t_type, (int) $p_access, $p_option, (int) $p_project, (int) $p_user); } db_query($t_set_query, $t_params); } config_set_cache($p_option, $c_value, $t_type, $p_user, $p_project, $p_access); return true; }
function project_delete($p_project_id) { $t_email_notifications = config_get('enable_email_notification'); # temporarily disable all notifications config_set_cache('enable_email_notification', OFF, CONFIG_TYPE_INT); $c_project_id = db_prepare_int($p_project_id); $t_project_table = db_get_table('project'); # Delete the bugs bug_delete_all($p_project_id); # Delete associations with custom field definitions. custom_field_unlink_all($p_project_id); # Delete the project categories category_remove_all($p_project_id); # Delete the project versions version_remove_all($p_project_id); # Delete relations to other projects project_hierarchy_remove_all($p_project_id); # Delete the project files project_delete_all_files($p_project_id); # Delete the records assigning users to this project project_remove_all_users($p_project_id); # Delete all news entries associated with the project being deleted news_delete_all($p_project_id); # Delete project specific configurations config_delete_project($p_project_id); # Delete any user prefs that are project specific user_pref_delete_project($p_project_id); # Delete the project entry $query = "DELETE FROM {$t_project_table}\n\t\t\t\t WHERE id=" . db_param(); db_query_bound($query, array($c_project_id)); config_set_cache('enable_email_notification', $t_email_notifications, CONFIG_TYPE_INT); project_clear_cache($p_project_id); # db_query errors on failure so: return true; }
function config_set( $p_option, $p_value, $p_user = NO_USER, $p_project = ALL_PROJECTS, $p_access = DEFAULT_ACCESS_LEVEL ) { if( $p_access == DEFAULT_ACCESS_LEVEL ) { $p_access = config_get_global( 'admin_site_threshold' ); } if( is_array( $p_value ) || is_object( $p_value ) ) { $t_type = CONFIG_TYPE_COMPLEX; $c_value = serialize( $p_value ); } else if( is_float( $p_value ) ) { $t_type = CONFIG_TYPE_FLOAT; $c_value = (float) $p_value; } else if( is_int( $p_value ) || is_numeric( $p_value ) ) { $t_type = CONFIG_TYPE_INT; $c_value = db_prepare_int( $p_value ); } else { $t_type = CONFIG_TYPE_STRING; $c_value = $p_value; } if( config_can_set_in_database( $p_option ) ) { $c_option = $p_option; $c_user = db_prepare_int( $p_user ); $c_project = db_prepare_int( $p_project ); $c_access = db_prepare_int( $p_access ); $t_config_table = db_get_table( 'config' ); $query = "SELECT COUNT(*) from $t_config_table WHERE config_id = " . db_param() . " AND project_id = " . db_param() . " AND user_id = " . db_param(); $result = db_query_bound( $query, Array( $c_option, $c_project, $c_user ) ); $t_params = Array(); if( 0 < db_result( $result ) ) { $t_set_query = "UPDATE $t_config_table SET value=" . db_param() . ", type=" . db_param() . ", access_reqd=" . db_param() . " WHERE config_id = " . db_param() . " AND project_id = " . db_param() . " AND user_id = " . db_param(); $t_params = Array( $c_value, $t_type, $c_access, $c_option, $c_project, $c_user, ); } else { $t_set_query = "INSERT INTO $t_config_table ( value, type, access_reqd, config_id, project_id, user_id ) VALUES (" . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ',' . db_param() . ' )'; $t_params = Array( $c_value, $t_type, $c_access, $c_option, $c_project, $c_user, ); } $result = db_query_bound( $t_set_query, $t_params ); } config_set_cache( $p_option, $c_value, $t_type, $p_user, $p_project, $p_access ); return true; }
function config_set($p_option, $p_value, $p_user = NO_USER, $p_project = ALL_PROJECTS, $p_access = ADMINISTRATOR) { if (is_array($p_value) || is_object($p_value)) { $t_type = CONFIG_TYPE_COMPLEX; $c_value = db_prepare_string(serialize($p_value)); } else { if (is_int($p_value) || is_numeric($p_value)) { $t_type = CONFIG_TYPE_INT; $c_value = db_prepare_int($p_value); } else { $t_type = CONFIG_TYPE_STRING; $c_value = db_prepare_string($p_value); } } if (config_can_set_in_database($p_option)) { $c_option = db_prepare_string($p_option); $c_user = db_prepare_int($p_user); $c_project = db_prepare_int($p_project); $c_access = db_prepare_int($p_access); $t_config_table = config_get_global('mantis_config_table'); $query = "SELECT COUNT(*) from {$t_config_table}\r\n\t\t\t\tWHERE config_id = '{$c_option}' AND\r\n\t\t\t\t\tproject_id = {$c_project} AND\r\n\t\t\t\t\tuser_id = {$c_user}"; $result = db_query($query); if (0 < db_result($result)) { $t_set_query = "UPDATE {$t_config_table}\r\n\t\t\t\t\tSET value='{$c_value}', type={$t_type}, access_reqd={$c_access}\r\n\t\t\t\t\tWHERE config_id = '{$c_option}' AND\r\n\t\t\t\t\t\tproject_id = {$c_project} AND\r\n\t\t\t\t\t\tuser_id = {$c_user}"; } else { $t_set_query = "INSERT INTO {$t_config_table}\r\n\t\t\t\t\t( value, type, access_reqd, config_id, project_id, user_id )\r\n\t\t\t\t\tVALUES \r\n\t\t\t\t\t('{$c_value}', {$t_type}, {$c_access}, '{$c_option}', {$c_project}, {$c_user} )"; } $result = db_query($t_set_query); } config_set_cache($p_option, $p_value, $p_user, $p_project, $p_access); return true; }
/** * Delete a project * @param integer $p_project_id A project identifier. * @return void */ function project_delete($p_project_id) { event_signal('EVENT_MANAGE_PROJECT_DELETE', array($p_project_id)); $t_email_notifications = config_get('enable_email_notification'); # temporarily disable all notifications config_set_cache('enable_email_notification', OFF, CONFIG_TYPE_INT); # Delete the bugs bug_delete_all($p_project_id); # Delete associations with custom field definitions. custom_field_unlink_all($p_project_id); # Delete the project categories category_remove_all($p_project_id); # Delete the project versions version_remove_all($p_project_id); # Delete relations to other projects project_hierarchy_remove_all($p_project_id); # Delete the project files project_delete_all_files($p_project_id); # Delete the records assigning users to this project project_remove_all_users($p_project_id); # Delete all news entries associated with the project being deleted news_delete_all($p_project_id); # Delete project specific configurations config_delete_project($p_project_id); # Delete any user prefs that are project specific user_pref_delete_project($p_project_id); # Delete the project entry $t_query = 'DELETE FROM {project} WHERE id=' . db_param(); db_query($t_query, array($p_project_id)); config_set_cache('enable_email_notification', $t_email_notifications, CONFIG_TYPE_INT); project_clear_cache($p_project_id); }
/** * Sets the value of the given config option to the given value * If the config option does not exist, an ERROR is triggered * * @param string $p_option config option * @param string $p_value config value * @param int $p_user user id * @param int $p_project project id * @param int $p_access access level * @return bool */ function config_set($p_option, $p_value, $p_user = NO_USER, $p_project = ALL_PROJECTS, $p_access = DEFAULT_ACCESS_LEVEL) { if ($p_access == DEFAULT_ACCESS_LEVEL) { $p_access = config_get_global('admin_site_threshold'); } if (is_array($p_value) || is_object($p_value)) { $t_type = CONFIG_TYPE_COMPLEX; $c_value = serialize($p_value); } else { if (is_float($p_value)) { $t_type = CONFIG_TYPE_FLOAT; $c_value = (double) $p_value; } else { if (is_int($p_value) || is_numeric($p_value)) { $t_type = CONFIG_TYPE_INT; $c_value = (int) $p_value; } else { $t_type = CONFIG_TYPE_STRING; $c_value = $p_value; } } } if (config_can_set_in_database($p_option)) { # before we set in the database, ensure that the user and project id exist if ($p_project !== ALL_PROJECTS) { project_ensure_exists($p_project); } if ($p_user !== NO_USER) { user_ensure_exists($p_user); } $t_config_table = db_get_table('config'); $t_query = "SELECT COUNT(*) from {$t_config_table}\n\t\t\t\tWHERE config_id = " . db_param() . " AND\n\t\t\t\t\tproject_id = " . db_param() . " AND\n\t\t\t\t\tuser_id = " . db_param(); $t_result = db_query_bound($t_query, array($p_option, (int) $p_project, (int) $p_user)); $t_params = array(); if (0 < db_result($t_result)) { $t_set_query = "UPDATE {$t_config_table}\n\t\t\t\t\tSET value=" . db_param() . ", type=" . db_param() . ", access_reqd=" . db_param() . "\n\t\t\t\t\tWHERE config_id = " . db_param() . " AND\n\t\t\t\t\t\tproject_id = " . db_param() . " AND\n\t\t\t\t\t\tuser_id = " . db_param(); $t_params = array($c_value, $t_type, (int) $p_access, $p_option, (int) $p_project, (int) $p_user); } else { $t_set_query = "INSERT INTO {$t_config_table}\n\t\t\t\t\t( value, type, access_reqd, config_id, project_id, user_id )\n\t\t\t\t\tVALUES\n\t\t\t\t\t(" . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ', ' . db_param() . ',' . db_param() . ' )'; $t_params = array($c_value, $t_type, (int) $p_access, $p_option, (int) $p_project, (int) $p_user); } $result = db_query_bound($t_set_query, $t_params); } config_set_cache($p_option, $c_value, $t_type, $p_user, $p_project, $p_access); return true; }