private function save() { $now = new Date(); $current_user = AppContext::get_current_user(); if ($this->config->are_pm_enabled() && $this->config->are_pm_delete_enabled()) { //Add comment if needed $comment = !$this->form->field_is_disabled('comments_message') ? $this->form->get_value('comments_message', '') : ''; //Send PM with comment to updaters if the option is enabled BugtrackerPMService::send_PM_to_updaters('delete', $this->bug->get_id(), $comment); } //Delete bug BugtrackerService::delete("WHERE id=:id", array('id' => $this->bug->get_id())); //Delete bug history BugtrackerService::delete_history("WHERE bug_id=:id", array('id' => $this->bug->get_id())); //Delete comments CommentsService::delete_comments_topic_module('bugtracker', $this->bug->get_id()); //Delete admin alert if ($this->config->are_admin_alerts_enabled()) { $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker'); if (!empty($alerts)) { AdministratorAlertService::delete_alert($alerts[0]); } } BugtrackerStatsCache::invalidate(); Feed::clear_cache('bugtracker'); }
private function save($id) { $extended_field = new ExtendedField(); $extended_field->set_id($id); $extended_field = ExtendedFieldsService::data_field($extended_field); $freeze = $extended_field->get_is_freeze(); if (!$freeze) { $extended_field->set_field_name(ExtendedField::rewrite_field_name($this->form->get_value('name', $extended_field->get_field_name()))); $extended_field->set_field_type($this->form->get_value('field_type', $extended_field->get_field_type())->get_raw_value()); } else { $extended_field->set_field_name(TextHelper::htmlspecialchars($extended_field->get_field_name())); $extended_field->set_field_type($extended_field->get_field_type()); } $extended_field->set_name(TextHelper::htmlspecialchars($this->form->get_value('name'))); $extended_field->set_position(PersistenceContext::get_querier()->get_column_value(DB_TABLE_MEMBER_EXTENDED_FIELDS_LIST, 'MAX(position) + 1', '')); $extended_field->set_description(TextHelper::htmlspecialchars($this->form->get_value('description', $extended_field->get_description()))); if (!$this->form->field_is_disabled('possible_values')) { $extended_field->set_possible_values($this->form->get_value('possible_values')); } if (!$this->form->field_is_disabled('default_value')) { $extended_field->set_default_value($this->form->get_value('default_value')); } $extended_field->set_is_required((bool) $this->form->get_value('field_required')); $extended_field->set_display((bool) $this->form->get_value('display')); $regex = 0; if (!$this->form->field_is_disabled('regex_type')) { $regex = is_numeric($this->form->get_value('regex_type', '')->get_raw_value()) ? $this->form->get_value('regex_type', '')->get_raw_value() : $this->form->get_value('regex', ''); } $extended_field->set_regex($regex); $extended_field->set_authorization($this->form->get_value('authorizations', $extended_field->get_authorization())->build_auth_array()); ExtendedFieldsService::update($extended_field); return $extended_field; }
private function save() { $this->config->set_database_tables_optimization_enabled($this->form->get_value('database_tables_optimization_enabled')); if (!$this->form->field_is_disabled('database_tables_optimization_day')) { $this->config->set_database_tables_optimization_day($this->form->get_value('database_tables_optimization_day')->get_raw_value()); } DatabaseConfig::save(); }
private function save() { $field = $this->get_field(); $fields = $this->config->get_fields(); if ($field->is_deletable()) { $field->set_field_name(ContactField::rewrite_field_name($this->form->get_value('name'))); } $field->set_name($this->form->get_value('name')); $field->set_description($this->form->get_value('description')); if (!$this->form->field_is_disabled('field_type')) { $field->set_field_type($this->form->get_value('field_type')->get_raw_value()); } if (!$field->is_readonly() && !$this->form->field_is_disabled('regex_type')) { $regex = 0; if (!$this->form->field_is_disabled('regex_type')) { $regex = is_numeric($this->form->get_value('regex_type', '')->get_raw_value()) ? $this->form->get_value('regex_type', '')->get_raw_value() : $this->form->get_value('regex', ''); } $field->set_regex($regex); } if (!$this->form->field_is_disabled('field_required')) { if ((bool) $this->form->get_value('field_required')) { $field->required(); } else { $field->not_required(); } } if (!$this->form->field_is_disabled('possible_values')) { $field->set_possible_values($this->form->get_value('possible_values')); } if (!$this->form->field_is_disabled('default_value_small')) { $field->set_default_value($this->form->get_value('default_value_small')); } if (!$this->form->field_is_disabled('default_value_medium')) { $field->set_default_value($this->form->get_value('default_value_medium')); } if (!$this->form->field_is_disabled('display')) { if ((bool) $this->form->get_value('display')) { $field->displayed(); } else { $field->not_displayed(); } } if (!$this->form->field_is_disabled('authorizations')) { $field->set_authorization($this->form->get_value('authorizations', $field->get_authorization())->build_auth_array()); } $fields[!empty($this->id) ? $this->id : count($this->config->get_fields()) + 1] = $field->get_properties(); $this->config->set_fields($fields); ContactConfig::save(); }
private function save() { $this->user_account_config->set_registration_enabled($this->form->get_value('members_activation')); if (!$this->form->field_is_disabled('type_activation_members')) { $this->user_account_config->set_member_accounts_validation_method($this->form->get_value('type_activation_members')->get_raw_value()); } if (!$this->form->field_is_disabled('unactivated_accounts_timeout')) { $this->user_account_config->set_unactivated_accounts_timeout($this->form->get_value('unactivated_accounts_timeout')); } $this->security_config->set_internal_password_min_length($this->form->get_value('internal_password_min_length')); $this->security_config->set_internal_password_strength($this->form->get_value('internal_password_strength')->get_raw_value()); if ($this->form->get_value('login_and_email_forbidden_in_password')) { $this->security_config->forbid_login_and_email_in_password(); } else { $this->security_config->allow_login_and_email_in_password(); } SecurityConfig::save(); if ($this->server_configuration->has_curl_library()) { if ($this->form->get_value('fb_auth_enabled')) { $this->authentication_config->enable_fb_auth(); $this->authentication_config->set_fb_app_id($this->form->get_value('fb_app_id')); $this->authentication_config->set_fb_app_key($this->form->get_value('fb_app_key')); } else { $this->authentication_config->disable_fb_auth(); } if ($this->form->get_value('google_auth_enabled')) { $this->authentication_config->enable_google_auth(); $this->authentication_config->set_google_client_id($this->form->get_value('google_client_id')); $this->authentication_config->set_google_client_secret($this->form->get_value('google_client_secret')); } else { $this->authentication_config->disable_google_auth(); } AuthenticationConfig::save(); } $this->user_account_config->set_avatar_upload_enabled($this->form->get_value('upload_avatar_server')); $this->user_account_config->set_default_avatar_name_enabled($this->form->get_value('default_avatar_activation')); $this->user_account_config->set_avatar_auto_resizing_enabled($this->form->get_value('activation_resize_avatar')); $this->user_account_config->set_default_avatar_name($this->form->get_value('default_avatar_link')); $this->user_account_config->set_max_avatar_width($this->form->get_value('maximal_width_avatar')); $this->user_account_config->set_max_avatar_height($this->form->get_value('maximal_height_avatar')); $this->user_account_config->set_max_avatar_weight($this->form->get_value('maximal_weight_avatar')); $this->user_account_config->set_auth_read_members($this->form->get_value('authorizations')->build_auth_array()); $this->user_account_config->set_welcome_message($this->form->get_value('welcome_message_contents')); $this->user_account_config->set_registration_agreement($this->form->get_value('registration_agreement')); UserAccountsConfig::save(); }
protected function save() { if ($this->is_apc_available()) { if ($this->form->get_value('enable_apc')) { DataStoreFactory::set_apc_enabled(true); } else { DataStoreFactory::set_apc_enabled(false); } } if ($this->form->get_value('enable_css_cache')) { $this->css_cache_config->enable(); } else { $this->css_cache_config->disable(); } if (!$this->form->field_is_disabled('level_css_cache')) { $this->css_cache_config->set_optimization_level($this->form->get_value('level_css_cache')->get_raw_value()); } CSSCacheConfig::save(); AppContext::get_cache_service()->clear_css_cache(); }
private function save() { $now = new Date(); $pm_recipients_list = array(); $send_pm = true; $versions = array_reverse($this->config->get_versions_fix(), true); $status = $this->form->get_value('status')->get_raw_value(); if (count($versions)) { if (!$this->form->field_is_disabled('fixed_in')) { $fixed_in = $this->form->get_value('fixed_in')->get_raw_value() ? $this->form->get_value('fixed_in')->get_raw_value() : 0; if ($fixed_in != $this->bug->get_fixed_in()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'fixed_in', 'old_value' => $this->bug->get_fixed_in(), 'new_value' => $fixed_in)); $this->bug->set_fixed_in($fixed_in); } } else { if (in_array($status, array(Bug::NEW_BUG, Bug::REJECTED))) { $this->bug->set_fixed_in(0); } } } if (!$this->form->field_is_disabled('assigned_to')) { $assigned_to = $this->form->get_value('assigned_to'); $assigned_to_id = UserService::user_exists("WHERE display_name = :display_name", array('display_name' => $assigned_to)); if ($this->bug->get_assigned_to_id()) { $old_user_assigned_id = UserService::user_exists("WHERE user_id = :user_id", array('user_id' => $this->bug->get_assigned_to_id())); $old_user_assigned = !empty($old_user_assigned_id) ? UserService::get_user($old_user_assigned_id) : 0; } else { $old_user_assigned = 0; } $new_user_assigned = !empty($assigned_to) && !empty($assigned_to_id) ? UserService::get_user($assigned_to_id) : 0; $new_assigned_to_id = !empty($new_user_assigned) ? $new_user_assigned->get_id() : 0; if ($new_assigned_to_id != $this->bug->get_assigned_to_id()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'assigned_to_id', 'old_value' => $old_user_assigned ? $old_user_assigned->get_display_name() : $this->lang['notice.no_one'], 'new_value' => $new_user_assigned ? $new_user_assigned->get_display_name() : $this->lang['notice.no_one'])); //Bug update $this->bug->set_assigned_to_id($new_assigned_to_id); //The PM will only be sent to the assigned user if ($new_assigned_to_id != $this->current_user->get_id()) { $pm_recipients_list[] = $new_assigned_to_id; } else { $send_pm = false; } } } if ($status != $this->bug->get_status()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'status', 'old_value' => $this->bug->get_status(), 'new_value' => $status)); //Bug update $this->bug->set_status($status); if ($this->bug->is_fixed() || $this->bug->is_rejected()) { $this->bug->set_fix_date($now); } else { $this->bug->set_fix_date(0); } } BugtrackerService::update($this->bug); Feed::clear_cache('bugtracker'); switch ($status) { case Bug::IN_PROGRESS: $is_pm_enabled = $this->config->are_pm_in_progress_enabled(); break; case Bug::PENDING: $is_pm_enabled = $this->config->are_pm_pending_enabled(); break; case Bug::ASSIGNED: $is_pm_enabled = $this->config->are_pm_assign_enabled(); break; case Bug::FIXED: $is_pm_enabled = $this->config->are_pm_fix_enabled(); break; case Bug::REOPEN: $is_pm_enabled = $this->config->are_pm_reopen_enabled(); break; case Bug::REJECTED: $is_pm_enabled = $this->config->are_pm_reject_enabled(); break; default: $is_pm_enabled = false; break; } //Add comment if needed $comment = $this->form->get_value('comments_message', ''); if (!empty($comment)) { $comments_topic = new BugtrackerCommentsTopic(); $comments_topic->set_id_in_module($this->bug->get_id()); $comments_topic->set_url(BugtrackerUrlBuilder::detail($this->bug->get_id() . '-' . $this->bug->get_rewrited_title())); CommentsManager::add_comment($comments_topic->get_module_id(), $comments_topic->get_id_in_module(), $comments_topic->get_topic_identifier(), $comments_topic->get_path(), $comment); //New line in the bug history BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'change_comment' => $this->lang['notice.new_comment'])); } //Send PM with comment to updaters if the option is enabled if (!$this->bug->is_new() && $this->config->are_pm_enabled() && $is_pm_enabled && $send_pm) { BugtrackerPMService::send_PM_to_updaters($status, $this->bug->get_id(), $comment, $pm_recipients_list); } if (in_array($status, array(Bug::NEW_BUG, Bug::REOPEN, Bug::REJECTED, Bug::FIXED)) && $this->config->are_admin_alerts_enabled() && in_array($this->bug->get_severity(), $this->config->get_admin_alerts_levels())) { $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker'); if (!empty($alerts)) { $alert = $alerts[0]; if ($this->bug->is_new() || $this->bug->is_reopen()) { $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_UNREAD); AdministratorAlertService::save_alert($alert); } else { if ($this->config->is_admin_alerts_fix_action_fix()) { $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_PROCESSED); AdministratorAlertService::save_alert($alert); } else { AdministratorAlertService::delete_alert($alert); } } } } BugtrackerStatsCache::invalidate(); }