Commit 044848e6 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 304660: PerformSubsts() should be in Util.pm instead of BugMail.pm - Patch…

Bug 304660: PerformSubsts() should be in Util.pm instead of BugMail.pm - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=myk
parent 74601372
...@@ -1079,7 +1079,7 @@ sub RemoveVotes { ...@@ -1079,7 +1079,7 @@ sub RemoveVotes {
$substs{"count"} = $removedvotes . "\n " . $newvotestext; $substs{"count"} = $removedvotes . "\n " . $newvotestext;
my $msg = PerformSubsts(Param("voteremovedmail"), \%substs); my $msg = perform_substs(Param("voteremovedmail"), \%substs);
Bugzilla::BugMail::MessageToMTA($msg); Bugzilla::BugMail::MessageToMTA($msg);
} }
my $votes = $dbh->selectrow_array("SELECT SUM(vote_count) " . my $votes = $dbh->selectrow_array("SELECT SUM(vote_count) " .
......
...@@ -32,11 +32,6 @@ use strict; ...@@ -32,11 +32,6 @@ use strict;
package Bugzilla::BugMail; package Bugzilla::BugMail;
use base qw(Exporter);
@Bugzilla::BugMail::EXPORT = qw(
PerformSubsts
);
use Bugzilla::DB qw(:deprecated); use Bugzilla::DB qw(:deprecated);
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Constants; use Bugzilla::Constants;
...@@ -603,7 +598,7 @@ sub sendMail { ...@@ -603,7 +598,7 @@ sub sendMail {
my $template = Param("newchangedmail"); my $template = Param("newchangedmail");
my $msg = PerformSubsts($template, \%substs); my $msg = perform_substs($template, \%substs);
MessageToMTA($msg); MessageToMTA($msg);
...@@ -730,32 +725,11 @@ sub encode_message { ...@@ -730,32 +725,11 @@ sub encode_message {
return ($head, $body); return ($head, $body);
} }
# Performs substitutions for sending out email with variables in it,
# or for inserting a parameter into some other string.
#
# Takes a string and a reference to a hash containing substitution
# variables and their values.
#
# If the hash is not specified, or if we need to substitute something
# that's not in the hash, then we will use parameters to do the
# substitution instead.
#
# Substitutions are always enclosed with '%' symbols. So they look like:
# %some_variable_name%. If "some_variable_name" is a key in the hash, then
# its value will be placed into the string. If it's not a key in the hash,
# then the value of the parameter called "some_variable_name" will be placed
# into the string.
sub PerformSubsts {
my ($str, $substs) = (@_);
$str =~ s/%([a-z]*)%/(defined $substs->{$1} ? $substs->{$1} : Param($1))/eg;
return $str;
}
# Send the login name and password of the newly created account to the user. # Send the login name and password of the newly created account to the user.
sub MailPassword { sub MailPassword {
my ($login, $password) = (@_); my ($login, $password) = (@_);
my $template = Param("passwordmail"); my $template = Param("passwordmail");
my $msg = PerformSubsts($template, my $msg = perform_substs($template,
{"mailaddress" => $login . Param('emailsuffix'), {"mailaddress" => $login . Param('emailsuffix'),
"login" => $login, "login" => $login,
"password" => $password}); "password" => $password});
......
...@@ -37,6 +37,7 @@ use base qw(Exporter); ...@@ -37,6 +37,7 @@ use base qw(Exporter);
lsearch max min lsearch max min
diff_arrays diff_strings diff_arrays diff_strings
trim wrap_comment find_wrap_point trim wrap_comment find_wrap_point
perform_substs
format_time format_time_decimal validate_date format_time format_time_decimal validate_date
file_mod_time is_7bit_clean file_mod_time is_7bit_clean
bz_crypt validate_email_syntax); bz_crypt validate_email_syntax);
...@@ -264,6 +265,12 @@ sub find_wrap_point { ...@@ -264,6 +265,12 @@ sub find_wrap_point {
return $wrappoint; return $wrappoint;
} }
sub perform_substs {
my ($str, $substs) = (@_);
$str =~ s/%([a-z]*)%/(defined $substs->{$1} ? $substs->{$1} : Param($1))/eg;
return $str;
}
sub format_time { sub format_time {
my ($date, $format) = @_; my ($date, $format) = @_;
...@@ -418,6 +425,7 @@ Bugzilla::Util - Generic utility functions for bugzilla ...@@ -418,6 +425,7 @@ Bugzilla::Util - Generic utility functions for bugzilla
$val = trim(" abc "); $val = trim(" abc ");
($removed, $added) = diff_strings($old, $new); ($removed, $added) = diff_strings($old, $new);
$wrapped = wrap_comment($comment); $wrapped = wrap_comment($comment);
$msg = perform_substs($str, $substs);
# Functions for formatting time # Functions for formatting time
format_time($time); format_time($time);
...@@ -600,6 +608,24 @@ Search for a comma, a whitespace or a hyphen to split $string, within the first ...@@ -600,6 +608,24 @@ Search for a comma, a whitespace or a hyphen to split $string, within the first
$maxpos characters. If none of them is found, just split $string at $maxpos. $maxpos characters. If none of them is found, just split $string at $maxpos.
The search starts at $maxpos and goes back to the beginning of the string. The search starts at $maxpos and goes back to the beginning of the string.
=item C<perform_substs($str, $substs)>
Performs substitutions for sending out email with variables in it,
or for inserting a parameter into some other string.
Takes a string and a reference to a hash containing substitution
variables and their values.
If the hash is not specified, or if we need to substitute something
that's not in the hash, then we will use parameters to do the
substitution instead.
Substitutions are always enclosed with '%' symbols. So they look like:
%some_variable_name%. If "some_variable_name" is a key in the hash, then
its value will be placed into the string. If it's not a key in the hash,
then the value of the parameter called "some_variable_name" will be placed
into the string.
=item C<is_7bit_clean($str)> =item C<is_7bit_clean($str)>
Returns true is the string contains only 7-bit characters (ASCII 32 through 126, Returns true is the string contains only 7-bit characters (ASCII 32 through 126,
......
...@@ -35,7 +35,6 @@ use Bugzilla::Constants; ...@@ -35,7 +35,6 @@ use Bugzilla::Constants;
use Bugzilla::Util; use Bugzilla::Util;
# Bring ChmodDataFile in until this is all moved to the module # Bring ChmodDataFile in until this is all moved to the module
use Bugzilla::Config qw(:DEFAULT ChmodDataFile $localconfig $datadir); use Bugzilla::Config qw(:DEFAULT ChmodDataFile $localconfig $datadir);
use Bugzilla::BugMail;
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Error; use Bugzilla::Error;
......
...@@ -29,7 +29,6 @@ use File::Temp; ...@@ -29,7 +29,6 @@ use File::Temp;
use Bugzilla; use Bugzilla;
use Bugzilla::Config qw(:DEFAULT $webdotdir); use Bugzilla::Config qw(:DEFAULT $webdotdir);
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::BugMail;
use Bugzilla::Bug; use Bugzilla::Bug;
require "globals.pl"; require "globals.pl";
...@@ -221,7 +220,7 @@ my $webdotbase = Param('webdotbase'); ...@@ -221,7 +220,7 @@ my $webdotbase = Param('webdotbase');
if ($webdotbase =~ /^https?:/) { if ($webdotbase =~ /^https?:/) {
# Remote dot server # Remote dot server
my $url = PerformSubsts($webdotbase) . $filename; my $url = perform_substs($webdotbase) . $filename;
$vars->{'image_url'} = $url . ".gif"; $vars->{'image_url'} = $url . ".gif";
$vars->{'map_url'} = $url . ".map"; $vars->{'map_url'} = $url . ".map";
} else { } else {
......
...@@ -33,6 +33,7 @@ use lib '.'; ...@@ -33,6 +33,7 @@ use lib '.';
require "globals.pl"; require "globals.pl";
use Bugzilla::BugMail; use Bugzilla::BugMail;
use Bugzilla::Util;
# Whining is disabled if whinedays is zero # Whining is disabled if whinedays is zero
exit unless Param('whinedays') >= 1; exit unless Param('whinedays') >= 1;
...@@ -71,7 +72,7 @@ foreach my $email (sort (keys %bugs)) { ...@@ -71,7 +72,7 @@ foreach my $email (sort (keys %bugs)) {
my %substs; my %substs;
$substs{'email'} = $email . $emailsuffix; $substs{'email'} = $email . $emailsuffix;
$substs{'userid'} = $email; $substs{'userid'} = $email;
my $msg = PerformSubsts($template, \%substs); my $msg = perform_substs($template, \%substs);
foreach my $i (@{$bugs{$email}}) { foreach my $i (@{$bugs{$email}}) {
$msg .= " " . shift(@{$desc{$email}}) . "\n"; $msg .= " " . shift(@{$desc{$email}}) . "\n";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment