From 8db452b3d757978ff7166dc229bdb4ebfbd1bdc7 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Tue, 13 Nov 2007 05:15:06 +0000 Subject: Bug 401957: Move comment "isprivate" updating from process_bug to Bugzilla::Bug Patch By Max Kanat-Alexander r=LpSolit, a=LpSolit --- Bugzilla/Bug.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'Bugzilla/Bug.pm') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 7a4c02e89..e79a7a1ca 100755 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -501,6 +501,12 @@ sub update { Bugzilla->user->id, $delta_ts); } } + + foreach my $comment_id (keys %{$self->{comment_isprivate} || {}}) { + $dbh->do("UPDATE longdescs SET isprivate = ? WHERE comment_id = ?", + undef, $self->{comment_isprivate}->{$comment_id}, $comment_id); + # XXX It'd be nice to track this in the bug activity. + } # Insert the values into the multiselect value tables my @multi_selects = Bugzilla->get_fields( @@ -1339,6 +1345,19 @@ sub _set_global_validator { sub set_alias { $_[0]->set('alias', $_[1]); } sub set_cclist_accessible { $_[0]->set('cclist_accessible', $_[1]); } +sub set_comment_is_private { + my ($self, $comment_id, $isprivate) = @_; + return unless Bugzilla->user->is_insider; + my ($comment) = grep($comment_id eq $_->{id}, @{$self->longdescs}); + ThrowUserError('comment_invalid_isprivate', { id => $comment_id }) + if !$comment; + + $isprivate = $isprivate ? 1 : 0; + if ($isprivate != $comment->{isprivate}) { + $self->{comment_isprivate} ||= {}; + $self->{comment_isprivate}->{$comment_id} = $isprivate; + } +} sub set_component { my ($self, $name) = @_; my $old_comp = $self->component_obj; -- cgit v1.2.3-24-g4f1b