Bug 1053513 - remove last-visited entries when a user removes involvement from a bug

r/a=glob
parent e181022c
...@@ -1134,6 +1134,13 @@ sub update { ...@@ -1134,6 +1134,13 @@ sub update {
$self->update_user_last_visit($user, $delta_ts); $self->update_user_last_visit($user, $delta_ts);
} }
# If a user is no longer involved, remove their last visit entry
my $last_visits =
Bugzilla::BugUserLastVisit->match({ bug_id => $self->id });
foreach my $lv (@$last_visits) {
$lv->remove_from_db() unless $lv->user->is_involved_with_bug($self);
}
# Update bug ignore data if user wants to ignore mail for this bug # Update bug ignore data if user wants to ignore mail for this bug
if (exists $self->{'bug_ignored'}) { if (exists $self->{'bug_ignored'}) {
my $bug_ignored_changed; my $bug_ignored_changed;
......
...@@ -39,6 +39,13 @@ sub bug_id { return $_[0]->{bug_id} } ...@@ -39,6 +39,13 @@ sub bug_id { return $_[0]->{bug_id} }
sub user_id { return $_[0]->{user_id} } sub user_id { return $_[0]->{user_id} }
sub last_visit_ts { return $_[0]->{last_visit_ts} } sub last_visit_ts { return $_[0]->{last_visit_ts} }
sub user {
my $self = shift;
$self->{user} //= Bugzilla::User->new({ id => $self->user_id, cache => 1 });
return $self->{user};
}
1; 1;
__END__ __END__
...@@ -81,4 +88,6 @@ listed below. ...@@ -81,4 +88,6 @@ listed below.
=item C<last_visit_ts> =item C<last_visit_ts>
=item C<user>
=back =back
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