Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
e4aa1e72
Commit
e4aa1e72
authored
Jun 05, 2013
by
Frédéric Buclin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 874944: Do not display the Excluded list when sending bugmails
r=dkl a=LpSolit
parent
9da41200
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
33 additions
and
74 deletions
+33
-74
BugMail.pm
Bugzilla/BugMail.pm
+8
-17
sendbugmail.pl
contrib/sendbugmail.pl
+11
-20
sendunsentbugmail.pl
contrib/sendunsentbugmail.pl
+10
-17
bugmail.html.tmpl
template/en/default/bug/process/bugmail.html.tmpl
+4
-20
No files found.
Bugzilla/BugMail.pm
View file @
e4aa1e72
...
@@ -106,6 +106,9 @@ sub Send {
...
@@ -106,6 +106,9 @@ sub Send {
# Skip empty comments.
# Skip empty comments.
@$comments
=
grep
{
$_
->
type
||
$_
->
body
=~
/\S/
}
@$comments
;
@$comments
=
grep
{
$_
->
type
||
$_
->
body
=~
/\S/
}
@$comments
;
# If no changes have been made, there is no need to process further.
return
{
'sent'
=>
[]
}
unless
scalar
(
@diffs
)
||
scalar
(
@$comments
);
###########################################################################
###########################################################################
# Start of email filtering code
# Start of email filtering code
###########################################################################
###########################################################################
...
@@ -197,7 +200,6 @@ sub Send {
...
@@ -197,7 +200,6 @@ sub Send {
# the bug in question. However, we are not necessarily going to mail them
# the bug in question. However, we are not necessarily going to mail them
# all - there are preferences, permissions checks and all sorts to do yet.
# all - there are preferences, permissions checks and all sorts to do yet.
my
@sent
;
my
@sent
;
my
@excluded
;
# The email client will display the Date: header in the desired timezone,
# The email client will display the Date: header in the desired timezone,
# so we can always use UTC here.
# so we can always use UTC here.
...
@@ -206,18 +208,13 @@ sub Send {
...
@@ -206,18 +208,13 @@ sub Send {
foreach
my
$user_id
(
keys
%
recipients
)
{
foreach
my
$user_id
(
keys
%
recipients
)
{
my
%
rels_which_want
;
my
%
rels_which_want
;
my
$sent_mail
=
0
;
my
$user
=
$user_cache
{
$user_id
}
||=
new
Bugzilla::
User
(
$user_id
);
$user_cache
{
$user_id
}
||=
new
Bugzilla::
User
(
$user_id
);
my
$user
=
$user_cache
{
$user_id
};
# Deleted users must be excluded.
# Deleted users must be excluded.
next
unless
$user
;
next
unless
$user
;
# If email notifications are disabled for this account, or the bug
# If email notifications are disabled for this account, or the bug
# is ignored, there is no need to do additional checks.
# is ignored, there is no need to do additional checks.
if
(
$user
->
email_disabled
||
$user
->
is_bug_ignored
(
$id
))
{
next
if
(
$user
->
email_disabled
||
$user
->
is_bug_ignored
(
$id
));
push
(
@excluded
,
$user
->
login
);
next
;
}
if
(
$user
->
can_see_bug
(
$id
))
{
if
(
$user
->
can_see_bug
(
$id
))
{
# Go through each role the user has and see if they want mail in
# Go through each role the user has and see if they want mail in
...
@@ -250,7 +247,7 @@ sub Send {
...
@@ -250,7 +247,7 @@ sub Send {
# Email the user if the dep check passed.
# Email the user if the dep check passed.
if
(
$dep_ok
)
{
if
(
$dep_ok
)
{
$sent_mail
=
sendMail
(
my
$sent_mail
=
sendMail
(
{
to
=>
$user
,
{
to
=>
$user
,
bug
=>
$bug
,
bug
=>
$bug
,
comments
=>
$comments
,
comments
=>
$comments
,
...
@@ -261,15 +258,9 @@ sub Send {
...
@@ -261,15 +258,9 @@ sub Send {
diffs
=>
\
@diffs
,
diffs
=>
\
@diffs
,
rels_which_want
=>
\%
rels_which_want
,
rels_which_want
=>
\%
rels_which_want
,
});
});
push
(
@sent
,
$user
->
login
)
if
$sent_mail
;
}
}
}
}
if
(
$sent_mail
)
{
push
(
@sent
,
$user
->
login
);
}
else
{
push
(
@excluded
,
$user
->
login
);
}
}
}
# When sending bugmail about a blocker being reopened or resolved,
# When sending bugmail about a blocker being reopened or resolved,
...
@@ -281,7 +272,7 @@ sub Send {
...
@@ -281,7 +272,7 @@ sub Send {
$bug
->
{
lastdiffed
}
=
$end
;
$bug
->
{
lastdiffed
}
=
$end
;
}
}
return
{
'sent'
=>
\
@sent
,
'excluded'
=>
\
@excluded
};
return
{
'sent'
=>
\
@sent
};
}
}
sub
sendMail
{
sub
sendMail
{
...
...
contrib/sendbugmail.pl
View file @
e4aa1e72
#!/usr/bin/perl -w
#!/usr/bin/perl -w
T
# This Source Code Form is subject to the terms of the Mozilla Public
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
...
@@ -6,6 +6,8 @@
...
@@ -6,6 +6,8 @@
# This Source Code Form is "Incompatible With Secondary Licenses", as
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
# defined by the Mozilla Public License, v. 2.0.
use
5.10.1
;
use
strict
;
use
lib
qw(. lib)
;
use
lib
qw(. lib)
;
use
Bugzilla
;
use
Bugzilla
;
...
@@ -16,7 +18,7 @@ use Bugzilla::User;
...
@@ -16,7 +18,7 @@ use Bugzilla::User;
my
$dbh
=
Bugzilla
->
dbh
;
my
$dbh
=
Bugzilla
->
dbh
;
sub
usage
{
sub
usage
{
print
STDERR
"Usage: $0 bug_id user_email\n
"
;
say
STDERR
"Usage: $0 bug_id user_email
"
;
exit
;
exit
;
}
}
...
@@ -30,7 +32,7 @@ my $changer = $ARGV[1];
...
@@ -30,7 +32,7 @@ my $changer = $ARGV[1];
# Validate the bug number.
# Validate the bug number.
if
(
!
(
$bugnum
=~
/^(\d+)$/
))
{
if
(
!
(
$bugnum
=~
/^(\d+)$/
))
{
print
STDERR
"Bug number \"$bugnum\" not numeric.\n
"
;
say
STDERR
"Bug number \"$bugnum\" not numeric.
"
;
usage
();
usage
();
}
}
...
@@ -40,19 +42,19 @@ my ($id) = $dbh->selectrow_array("SELECT bug_id FROM bugs WHERE bug_id = ?",
...
@@ -40,19 +42,19 @@ my ($id) = $dbh->selectrow_array("SELECT bug_id FROM bugs WHERE bug_id = ?",
undef
,
$bugnum
);
undef
,
$bugnum
);
if
(
!
$id
)
{
if
(
!
$id
)
{
print
STDERR
"Bug number $bugnum does not exist.\n
"
;
say
STDERR
"Bug number $bugnum does not exist.
"
;
usage
();
usage
();
}
}
# Validate the changer address.
# Validate the changer address.
my
$match
=
Bugzilla
->
params
->
{
'emailregexp'
};
my
$match
=
Bugzilla
->
params
->
{
'emailregexp'
};
if
(
$changer
!~
/$match/
)
{
if
(
$changer
!~
/$match/
)
{
print
STDERR
"Changer \"$changer\" doesn't match email regular expression.\n
"
;
say
STDERR
"Changer \"$changer\" doesn't match email regular expression.
"
;
usage
();
usage
();
}
}
my
$changer_user
=
new
Bugzilla::
User
({
name
=>
$changer
});
my
$changer_user
=
new
Bugzilla::
User
({
name
=>
$changer
});
unless
(
$changer_user
)
{
unless
(
$changer_user
)
{
print
STDERR
"\"$changer\" is not a valid user.\n
"
;
say
STDERR
"\"$changer\" is not a valid user.
"
;
usage
();
usage
();
}
}
...
@@ -61,26 +63,15 @@ my $outputref = Bugzilla::BugMail::Send($bugnum, {'changer' => $changer_user });
...
@@ -61,26 +63,15 @@ my $outputref = Bugzilla::BugMail::Send($bugnum, {'changer' => $changer_user });
# Report the results.
# Report the results.
my
$sent
=
scalar
(
@
{
$outputref
->
{
sent
}});
my
$sent
=
scalar
(
@
{
$outputref
->
{
sent
}});
my
$excluded
=
scalar
(
@
{
$outputref
->
{
excluded
}});
if
(
$sent
)
{
if
(
$sent
)
{
print
"email sent to $sent recipients:\n
"
;
say
"email sent to $sent recipients:
"
;
}
else
{
}
else
{
print
"No email sent.\n
"
;
say
"No email sent.
"
;
}
}
foreach
my
$sent
(
@
{
$outputref
->
{
sent
}})
{
foreach
my
$sent
(
@
{
$outputref
->
{
sent
}})
{
print
" $sent\n"
;
say
" $sent"
;
}
if
(
$excluded
)
{
print
"$excluded recipients excluded:\n"
;
}
else
{
print
"No recipients excluded.\n"
;
}
foreach
my
$excluded
(
@
{
$outputref
->
{
excluded
}})
{
print
" $excluded\n"
;
}
}
# This document is copyright (C) 2004 Perforce Software, Inc. All rights
# This document is copyright (C) 2004 Perforce Software, Inc. All rights
...
...
contrib/sendunsentbugmail.pl
View file @
e4aa1e72
...
@@ -6,8 +6,8 @@
...
@@ -6,8 +6,8 @@
# This Source Code Form is "Incompatible With Secondary Licenses", as
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
# defined by the Mozilla Public License, v. 2.0.
use
5.10.1
;
use
strict
;
use
strict
;
use
lib
qw(. lib)
;
use
lib
qw(. lib)
;
use
Bugzilla
;
use
Bugzilla
;
...
@@ -25,28 +25,21 @@ my $list = $dbh->selectcol_arrayref(
...
@@ -25,28 +25,21 @@ my $list = $dbh->selectcol_arrayref(
' ORDER BY bug_id'
);
' ORDER BY bug_id'
);
if
(
scalar
(
@$list
)
>
0
)
{
if
(
scalar
(
@$list
)
>
0
)
{
print
"OK, now attempting to send unsent mail\n
"
;
say
"OK, now attempting to send unsent mail
"
;
print
scalar
(
@$list
)
.
" bugs found with possibly unsent mail.\n
\n"
;
say
scalar
(
@$list
)
.
" bugs found with possibly unsent mail.
\n"
;
foreach
my
$bugid
(
@$list
)
{
foreach
my
$bugid
(
@$list
)
{
my
$start_time
=
time
;
my
$start_time
=
time
;
print
"Sending mail for bug $bugid...\n
"
;
say
"Sending mail for bug $bugid...
"
;
my
$outputref
=
Bugzilla::BugMail::
Send
(
$bugid
);
my
$outputref
=
Bugzilla::BugMail::
Send
(
$bugid
);
if
(
$ARGV
[
0
]
&&
$ARGV
[
0
]
eq
"--report"
)
{
if
(
$ARGV
[
0
]
&&
$ARGV
[
0
]
eq
"--report"
)
{
print
"Mail sent to:\n"
;
say
"Mail sent to:"
;
foreach
(
sort
@
{
$outputref
->
{
sent
}})
{
say
$_
foreach
(
sort
@
{
$outputref
->
{
sent
}});
print
$_
.
"\n"
;
}
print
"Excluded:\n"
;
foreach
(
sort
@
{
$outputref
->
{
excluded
}})
{
print
$_
.
"\n"
;
}
}
}
else
{
else
{
my
(
$sent
,
$excluded
)
=
(
scalar
(
@
{
$outputref
->
{
sent
}}),
scalar
(
@
{
$outputref
->
{
excluded
}}))
;
my
$sent
=
scalar
@
{
$outputref
->
{
sent
}}
;
print
"$sent mails sent, $excluded people excluded.\n
"
;
say
"$sent mails sent.
"
;
print
"Took "
.
(
time
-
$start_time
)
.
" seconds.\n
\n"
;
say
"Took "
.
(
time
-
$start_time
)
.
" seconds.
\n"
;
}
}
}
}
print
"Unsent mail has been sent.\n
"
;
say
"Unsent mail has been sent.
"
;
}
}
template/en/default/bug/process/bugmail.html.tmpl
View file @
e4aa1e72
...
@@ -12,27 +12,11 @@
...
@@ -12,27 +12,11 @@
#%]
#%]
<dl>
<dl>
[% PROCESS emails
<dt>Email sent to:</dt>
description = "Email sent to"
names = sent_bugmail.sent
%]
[% PROCESS emails
description = "Excluding"
names = sent_bugmail.excluded
%]
</dl>
[%############################################################################%]
[%# Block for a set of email addresses #%]
[%############################################################################%]
[% BLOCK emails %]
<dt>[% description FILTER html %]:</dt>
<dd>
<dd>
[% IF user.can_see_bug(mailing_bugid) %]
[% IF user.can_see_bug(mailing_bugid) %]
[% IF
names.size > 0
%]
[% IF
sent_bugmail.sent.size
%]
[%
+ FOREACH name = names
%]
[%
FOREACH name = sent_bugmail.sent
%]
<code>[% name FILTER html %]</code>[% ", " UNLESS loop.last() %]
<code>[% name FILTER html %]</code>[% ", " UNLESS loop.last() %]
[% END %]
[% END %]
[% ELSE %]
[% ELSE %]
...
@@ -42,4 +26,4 @@
...
@@ -42,4 +26,4 @@
(list of e-mails not available)
(list of e-mails not available)
[% END %]
[% END %]
</dd>
</dd>
[% END %]
</dl>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment