From b34fac97b1ef5a46fd3c3a63cdf56b0626aa74b3 Mon Sep 17 00:00:00 2001 From: "bugreport%peshkin.net" <> Date: Wed, 16 Jun 2004 12:04:47 +0000 Subject: Bug 240325: Keep regexp-based groups up-to-date --- Bugzilla/User.pm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'Bugzilla/User.pm') diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index c9535d7bf..b3d953945 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -35,6 +35,7 @@ package Bugzilla::User; use Bugzilla::Config; use Bugzilla::Error; use Bugzilla::Util; +use Bugzilla::Constants; ################################################################################ # Functions @@ -246,9 +247,10 @@ sub derive_groups { # first remove any old derived stuff for this user $dbh->do(q{DELETE FROM user_group_map WHERE user_id = ? - AND isderived = 1}, + AND grant_type != ?}, undef, - $id); + $id, + GRANT_DIRECT); my %groupidsadded = (); # add derived records for any matching regexps @@ -260,10 +262,10 @@ sub derive_groups { while (my $row = $sth->fetch) { if ($self->{login} =~ m/$row->[1]/i) { $group_insert ||= $dbh->prepare(q{INSERT INTO user_group_map - (user_id, group_id, isbless, isderived) - VALUES (?, ?, 0, 1)}); + (user_id, group_id, isbless, grant_type) + VALUES (?, ?, 0, ?)}); $groupidsadded{$row->[0]} = 1; - $group_insert->execute($id, $row->[0]); + $group_insert->execute($id, $row->[0], GRANT_REGEXP); } } @@ -294,9 +296,9 @@ sub derive_groups { if (!$groupidsadded{$groupid}) { $groupidsadded{$groupid} = 1; $group_insert ||= $dbh->prepare(q{INSERT INTO user_group_map - (user_id, group_id, isbless, isderived) - VALUES (?, ?, 0, 1)}); - $group_insert->execute($id, $groupid); + (user_id, group_id, isbless, grant_type) + VALUES (?, ?, 0, ?)}); + $group_insert->execute($id, $groupid, GRANT_DERIVED); } } } -- cgit v1.2.3-24-g4f1b