summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2005-07-08 03:33:45 +0200
committerlpsolit%gmail.com <>2005-07-08 03:33:45 +0200
commitf20886b99e4b9c77baec231dc9a5fbdfe9faef59 (patch)
treefc28f529657e6160f59e634db50292f54422a5f4
parent7459578f65927f1bd2b44b7a1884ee85cf174be5 (diff)
downloadbugzilla-f20886b99e4b9c77baec231dc9a5fbdfe9faef59.tar.gz
bugzilla-f20886b99e4b9c77baec231dc9a5fbdfe9faef59.tar.xz
Bug 299211: whine.pl fails if derive_groups is required - Patch by Marc Schumann <wurblzap@gmail.com> r=LpSolit a=justdave
-rw-r--r--Bugzilla/Constants.pm6
-rw-r--r--Bugzilla/Flag.pm4
-rwxr-xr-xwhine.pl8
3 files changed, 12 insertions, 6 deletions
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm
index b745ad65f..a62629420 100644
--- a/Bugzilla/Constants.pm
+++ b/Bugzilla/Constants.pm
@@ -68,6 +68,8 @@ use base qw(Exporter);
COMMENT_COLS
+ DERIVE_GROUPS_TABLES_ALREADY_LOCKED
+
UNLOCK_ABORT
RELATIONSHIPS
@@ -174,6 +176,10 @@ use constant DEFAULT_QUERY_NAME => '(Default query)';
# The column length for displayed (and wrapped) bug comments.
use constant COMMENT_COLS => 80;
+# Used to indicate to User::new and User::new_from_login calls
+# that the derive_groups tables are already locked
+use constant DERIVE_GROUPS_TABLES_ALREADY_LOCKED => 1;
+
# used by Bugzilla::DB to indicate that tables are being unlocked
# because of error
use constant UNLOCK_ABORT => 1;
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm
index 464ddffaf..f19369c24 100644
--- a/Bugzilla/Flag.pm
+++ b/Bugzilla/Flag.pm
@@ -74,8 +74,6 @@ use Bugzilla::Attachment;
use Bugzilla::BugMail;
use Bugzilla::Constants;
-use constant TABLES_ALREADY_LOCKED => 1;
-
# Note that this line doesn't actually import these variables for some reason,
# so I have to use them as $::template and $::vars in the package code.
use vars qw($template $vars);
@@ -865,7 +863,7 @@ sub notify {
my @new_cc_list;
foreach my $cc (split(/[, ]+/, $flag->{'type'}->{'cc_list'})) {
my $ccuser = Bugzilla::User->new_from_login($cc,
- TABLES_ALREADY_LOCKED)
+ DERIVE_GROUPS_TABLES_ALREADY_LOCKED)
|| next;
next if $flag->{'target'}->{'bug'}->{'restricted'}
diff --git a/whine.pl b/whine.pl
index 8be68f42c..259195720 100755
--- a/whine.pl
+++ b/whine.pl
@@ -228,9 +228,10 @@ sub get_next_event {
$dbh->bz_lock_tables('whine_schedules WRITE',
'whine_events READ',
- 'profiles READ',
+ 'profiles WRITE',
'groups READ',
- 'user_group_map READ');
+ 'group_group_map READ',
+ 'user_group_map WRITE');
# Get the event ID for the first pending schedule
$sth_next_scheduled_event->execute;
@@ -239,7 +240,8 @@ sub get_next_event {
return undef unless $fetched;
my ($eventid, $owner_id, $subject, $body) = @{$fetched};
- my $owner = Bugzilla::User->new($owner_id);
+ my $owner = Bugzilla::User->new($owner_id,
+ DERIVE_GROUPS_TABLES_ALREADY_LOCKED);
my $whineatothers = $owner->in_group('bz_canusewhineatothers');