/** * Delete old cc list and add new email instead * * @param email: list of email addresses * @param comment: comment for these addresses * * @return boolean */ function updateCC($email, $comment) { global $Language; $user_id = user_isloggedin() ? user_getid() : 100; $arr_email = util_split_emails($email); $date = time(); $ok = true; $changed = false; if (!util_validateCCList($arr_email, $message)) { exit_error($Language->getText('tracker_index', 'cc_list_invalid'), $message); } //calculate old_values to put into artifact_history $old_value = $this->getCCEmails(); $new_value = join(',', $arr_email); //look if there is really something to do or not list($deleted_values, $added_values) = util_double_diff_array(explode(",", $old_value), $arr_email); if (count($deleted_values) == 0 && count($added_values) == 0) { return true; } if (!$this->deleteAllCC()) { $GLOBALS['Response']->addFeedback('error', $Language->getText('tracker_common_artifact', 'prob_cc_list', $this->getID())); $ok = false; } reset($arr_email); while (list(, $cc) = each($arr_email)) { $changed = true; $res = $this->insertCC($cc, $user_id, $comment, $date); if (!$res) { $ok = false; } } if (!$ok) { $GLOBALS['Response']->addFeedback('error', $Language->getText('tracker_common_artifact', 'cc_add_fail')); } else { $this->addHistory('cc', $old_value, $new_value); } return $ok; }
/** * Return the emails normalized **/ function util_normalize_emails($adresses) { $adresses = util_split_emails($adresses); list($host, $port) = explode(':', $GLOBALS['sys_default_domain']); foreach ($adresses as $key => $value) { if (trim($value) !== "") { $value = util_cleanup_emails($value); if (!validate_email($value)) { //Maybe it is a codendi username, we take his e-mail $result = user_get_result_set_from_unix($value); if ($result && db_numrows($result) > 0) { $value = db_result($result, 0, "email"); } else { $value = $value . "@" . $host; } } $adresses[$key] = $value; } } return implode(',', $adresses); }