← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~gmb/launchpad/bug-639736 into lp:launchpad

 

Graham Binns has proposed merging lp:~gmb/launchpad/bug-639736 into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers): code
Related bugs:
  #639736 Imported bug comments limited to lp beta testers group
  https://bugs.launchpad.net/bugs/639736



This branch removes the hiding from all but the beta-testing team of
comments imported from remote bug trackers.

Changes made, mostly removals:

== lib/canonical/config/schema-lazr.conf ==

 - I've removed the comment_syncing_team config key.

== lib/lp/bugs/browser/bugcomment.py ==

 - I've removed the should_display_remote_comments() function, which is
   no longer needed.
 - I've removed BugComment.can_be_shown, which isn't used except for
   hiding imported comments.

== lib/lp/bugs/browser/bugwatch.py ==

 - I've removed references to should_display_remote_comments() along
   with other lint.

== lib/lp/bugs/browser/tests/bug-views.txt ==
== lib/lp/bugs/doc/bugnotification-comment-syncing-team.txt ==

 - I've removed the tests for visisbility of imported comments since
   they a) no longer apply and b) are covered by user stories.

== lib/lp/bugs/interfaces/bugmessage.py ==

 - I've removed the declaration of IBugComment.can_be_shown.

== lib/lp/bugs/scripts/bugnotification.py ==

 - I've removed the conditional that ensured that only beta team members
   get emailed about imported comments.

== lib/lp/bugs/scripts/tests/test_bugnotification.py ==
== lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt ==
== lib/lp/bugs/stories/bugwatches/xx-bugwatch-comments.txt ==

 - I've removed the parts of the tests that pertain to hiding comment
   notifications from all but the beta team.

== lib/lp/bugs/tests/test_doc.py ==

 - I've removed the refefect to bugnotification-comment-syncing-team.txt,
   which has been removed.

-- 
https://code.launchpad.net/~gmb/launchpad/bug-639736/+merge/35999
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~gmb/launchpad/bug-639736 into lp:launchpad.
=== modified file 'lib/canonical/config/schema-lazr.conf'
--- lib/canonical/config/schema-lazr.conf	2010-09-18 02:57:24 +0000
+++ lib/canonical/config/schema-lazr.conf	2010-09-20 11:02:47 +0000
@@ -1394,12 +1394,6 @@
 
 
 [malone]
-# A team which can use the comment syncing interface for bug watches.
-# If it's set to None, the comment syncing interfaces will be visible
-# for everyone.
-# datatype: string or None
-comment_syncing_team: launchpad-beta-testers
-
 # The From address for Malone email interface errors.
 # datatype: string
 bugmail_error_from_address: none

=== modified file 'lib/lp/bugs/browser/bugcomment.py'
--- lib/lp/bugs/browser/bugcomment.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/browser/bugcomment.py	2010-09-20 11:02:47 +0000
@@ -12,7 +12,6 @@
     'BugCommentXHTMLRepresentation',
     'BugCommentBreadcrumb',
     'build_comments_from_chunks',
-    'should_display_remote_comments',
     ]
 
 from datetime import (
@@ -48,29 +47,8 @@
 from lp.registry.interfaces.person import IPersonSet
 
 
-def should_display_remote_comments(user):
-    """Return whether remote comments should be displayed for the user."""
-    # comment_syncing_team can be either None or '' to indicate unset.
-    if config.malone.comment_syncing_team:
-        comment_syncing_team = getUtility(IPersonSet).getByName(
-            config.malone.comment_syncing_team)
-        assert comment_syncing_team is not None, (
-            "comment_syncing_team was set to %s, which doesn't exist." % (
-                config.malone.comment_syncing_team))
-    else:
-        comment_syncing_team = None
-
-    if comment_syncing_team is None:
-        return True
-    else:
-        return user is not None and user.inTeam(comment_syncing_team)
-
-
 def build_comments_from_chunks(chunks, bugtask, truncate=False):
     """Build BugComments from MessageChunks."""
-    display_if_from_bugwatch = should_display_remote_comments(
-        getUtility(ILaunchBag).user)
-
     comments = {}
     index = 0
     for chunk in chunks:
@@ -78,7 +56,7 @@
         bug_comment = comments.get(message_id)
         if bug_comment is None:
             bug_comment = BugComment(
-                index, chunk.message, bugtask, display_if_from_bugwatch)
+                index, chunk.message, bugtask)
             comments[message_id] = bug_comment
             index += 1
         bug_comment.chunks.append(chunk)
@@ -122,8 +100,7 @@
     """
     implements(IBugComment)
 
-    def __init__(self, index, message, bugtask, display_if_from_bugwatch,
-                 activity=None):
+    def __init__(self, index, message, bugtask, activity=None):
         self.index = index
         self.bugtask = bugtask
         self.bugwatch = None
@@ -133,7 +110,6 @@
         self.datecreated = message.datecreated
         self.owner = message.owner
         self.rfc822msgid = message.rfc822msgid
-        self.display_if_from_bugwatch = display_if_from_bugwatch
 
         self.chunks = []
         self.bugattachments = []
@@ -147,14 +123,6 @@
         self.synchronized = False
 
     @property
-    def can_be_shown(self):
-        """Return whether or not the BugComment can be shown."""
-        if self.bugwatch and not self.display_if_from_bugwatch:
-            return False
-        else:
-            return True
-
-    @property
     def show_for_admin(self):
         """Show hidden comments for Launchpad admins.
 

=== modified file 'lib/lp/bugs/browser/bugwatch.py'
--- lib/lp/bugs/browser/bugwatch.py	2010-08-27 10:00:21 +0000
+++ lib/lp/bugs/browser/bugwatch.py	2010-09-20 11:02:47 +0000
@@ -14,7 +14,6 @@
 from zope.component import getUtility
 from zope.interface import Interface
 
-from canonical.config import config
 from canonical.database.constants import UTC_NOW
 from canonical.launchpad import _
 from canonical.launchpad.webapp import (
@@ -29,7 +28,6 @@
 from canonical.launchpad.webapp.interfaces import ILaunchBag
 from canonical.launchpad.webapp.menu import structured
 from canonical.widgets.textwidgets import URIWidget
-from lp.bugs.browser.bugcomment import should_display_remote_comments
 from lp.bugs.browser.bugtask import get_comments_for_bugtask
 from lp.bugs.interfaces.bugwatch import (
     BUG_WATCH_ACTIVITY_SUCCESS_STATUSES,
@@ -65,8 +63,6 @@
         team, no comments will be returned.
         """
         user = getUtility(ILaunchBag).user
-        if not should_display_remote_comments(user):
-            return []
 
         bug_comments = get_comments_for_bugtask(self.context.bug.bugtasks[0],
             truncate=True)

=== modified file 'lib/lp/bugs/browser/tests/bug-views.txt'
--- lib/lp/bugs/browser/tests/bug-views.txt	2010-08-07 14:54:40 +0000
+++ lib/lp/bugs/browser/tests/bug-views.txt	2010-09-20 11:02:47 +0000
@@ -690,106 +690,6 @@
     u'** Tags added: new-tag'
 
 
-= Visibility of Imported DebBugs Comments =
-
-Comments imported from the DebBugs bug tracker are not displayed in the
-user interface by default.
-
-A config option, malone.comment_syncing_team, controls which team should
-be able to see imported comments. We can demonstrate these using the
-standard BugTaskView for bug 15, which has a debian bug watch and
-imported comments.
-
-    >>> from zope.component import getUtility
-    >>> from lp.bugs.browser.bugtask import BugTaskView
-    >>> from canonical.launchpad.interfaces import IBugSet
-    >>> from canonical.launchpad.webapp.servers import (
-    ...     LaunchpadTestRequest)
-    >>> bug = getUtility(IBugSet).get(15)
-
-For anonymous users, the comments returned which have been imported from
-a bug watch will have a can_be_shown property of False.
-
-    >>> login(ANONYMOUS)
-    >>> view = BugTaskView(bug.bugtasks[0], LaunchpadTestRequest())
-    >>> print view.user
-    None
-    >>> for comment in view.visible_oldest_comments_for_display:
-    ...     comment.can_be_shown
-    False
-    False
-    False
-    False
-    False
-    False
-
-The same is true for people not in the comment syncing team.
-
-    >>> from canonical.config import config
-    >>> syncing_team = getUtility(IPersonSet).getByName(
-    ...     config.malone.comment_syncing_team)
-    >>> no_priv = getUtility(IPersonSet).getByEmail('no-priv@xxxxxxxxxxxxx')
-    >>> no_priv.inTeam(syncing_team)
-    False
-
-    >>> login('no-priv@xxxxxxxxxxxxx')
-    >>> view = BugTaskView(bug.bugtasks[0], LaunchpadTestRequest())
-    >>> view.user.name
-    u'no-priv'
-    >>> for comment in view.visible_oldest_comments_for_display:
-    ...     comment.can_be_shown
-    False
-    False
-    False
-    False
-    False
-    False
-
-People in the team get to see the comments.
-
-    >>> login('foo.bar@xxxxxxxxxxxxx')
-    >>> ignored = syncing_team.addMember(no_priv, no_priv)
-
-    >>> login('no-priv@xxxxxxxxxxxxx')
-    >>> view = BugTaskView(bug.bugtasks[0], LaunchpadTestRequest())
-    >>> view.user.name
-    u'no-priv'
-    >>> for comment in view.visible_oldest_comments_for_display:
-    ...     comment.can_be_shown
-    True
-    True
-    True
-    True
-    True
-    True
-
-However, if we set the comment_syncing_team config option to None, the
-imported comments for bug 15 will be displayable, even for anonymous
-users.
-
-    >>> from textwrap import dedent
-    >>> test_data = dedent("""
-    ...     [malone]
-    ...     comment_syncing_team: None
-    ...     """)
-    >>> config.push('test_data', test_data)
-
-    >>> login(ANONYMOUS)
-    >>> view = BugTaskView(bug.bugtasks[0], LaunchpadTestRequest())
-    >>> print view.user
-    None
-    >>> for comment in view.visible_oldest_comments_for_display:
-    ...     comment.can_be_shown
-    True
-    True
-    True
-    True
-    True
-    True
-
-    >>> test_config_data = config.pop('test_data')
-
-
 == Displaying BugActivity interleaved with comments ==
 
 BugTaskView offers a means for us to get a list of comments and activity

=== removed file 'lib/lp/bugs/doc/bugnotification-comment-syncing-team.txt'
--- lib/lp/bugs/doc/bugnotification-comment-syncing-team.txt	2009-12-24 01:41:54 +0000
+++ lib/lp/bugs/doc/bugnotification-comment-syncing-team.txt	1970-01-01 00:00:00 +0000
@@ -1,98 +0,0 @@
-= Bug notifications for comment syncing =
-
-The bug comment syncing feature can be limited to a specific team. If
-the comment_syncing_team config variable is set, comment notifications
-related to a bug watch will be sent only to members of that team.
-
-    >>> from canonical.config import config
-    >>> config.malone.comment_syncing_team
-    'launchpad-beta-testers'
-
-Only imported comments are affected. If a bug comment is associated with
-a bug watch, or a comment is added from the Bug Watch Updater, it won't
-be sent to people not in the syncing team. The latter happens when an
-initial comment import is done for a bug watch. We don't have any way of
-linking it to a bug watch, apart from marking it as a comment from the
-Bug Watch Updater.
-
-    >>> from lp.registry.interfaces.person import IPersonSet
-    >>> no_priv = getUtility(IPersonSet).getByName('no-priv')
-    >>> syncing_team = getUtility(IPersonSet).getByName(
-    ...     config.malone.comment_syncing_team)
-    >>> no_priv.inTeam(syncing_team)
-    False
-
-    >>> import transaction
-    >>> from canonical.testing.layers import LaunchpadZopelessLayer
-    >>> LaunchpadZopelessLayer.switchDbUser('launchpad')
-    >>> from canonical.launchpad.interfaces.message import IMessageSet
-    >>> from canonical.launchpad.interfaces.launchpad import (
-    ...     ILaunchpadCelebrities)
-    >>> bug = factory.makeBug(
-    ...     owner=no_priv,
-    ...     bug_watch_url='http://example.com/show_bug.cgi?id=42')
-    >>> some_bug_watch = bug.watches[0]
-    >>> bug_watch_comment = bug.newMessage(
-    ...     owner=no_priv, content='Imported comment',
-    ...     bugwatch=some_bug_watch)
-    >>> initial_import = getUtility(IMessageSet).fromText(
-    ...     subject='initial comment import',
-    ...     content='Comments have been imported.',
-    ...     owner=getUtility(ILaunchpadCelebrities).bug_watch_updater)
-    >>> bug.addCommentNotification(initial_import)
-    >>> transaction.commit()
-
-    >>> LaunchpadZopelessLayer.switchDbUser('bugnotification')
-    >>> from lp.bugs.model.bugnotification import (
-    ...     BugNotification)
-    >>> [comment_notification] = BugNotification.selectBy(
-    ...     message=bug_watch_comment)
-
-    >>> from lp.bugs.scripts.bugnotification import (
-    ...     construct_email_notifications)
-    >>> notifications, messages = construct_email_notifications(
-    ...     [comment_notification, ])
-    >>> [message['To'] for message in messages]
-    []
-    >>> [initial_import_notification] = BugNotification.selectBy(
-    ...     message=initial_import)
-    >>> notifications, messages = construct_email_notifications(
-    ...     [initial_import_notification, ])
-    >>> [message['To'] for message in messages]
-    []
-
-Members of the syncing team will get the notifications.
-
-    >>> LaunchpadZopelessLayer.switchDbUser('launchpad')
-    >>> ignored = syncing_team.addMember(no_priv, no_priv)
-    >>> transaction.commit()
-
-    >>> LaunchpadZopelessLayer.switchDbUser('bugnotification')
-    >>> notifications, messages = construct_email_notifications(
-    ...     [comment_notification])
-    >>> [message['To'] for message in messages]
-    ['no-priv@xxxxxxxxxxxxx']
-    >>> notifications, messages = construct_email_notifications(
-    ...     [initial_import_notification])
-    >>> [message['To'] for message in messages]
-    ['no-priv@xxxxxxxxxxxxx']
-
-If comment_syncing_team isn't set, notications are sent to other people
-related to the bug as well.
-
-    >>> from textwrap import dedent
-    >>> config.push(
-    ...     'no-comment-syncing-team', dedent("""
-    ...         [malone]
-    ...         comment_syncing_team:
-    ...         """))
-    >>> notifications, messages = construct_email_notifications(
-    ...     [comment_notification])
-    >>> len(messages) > 1
-    True
-    >>> notifications, messages = construct_email_notifications(
-    ...     [initial_import_notification])
-    >>> len(messages) > 1
-    True
-
-    >>> ignored = config.pop('no-comment-syncing-team')

=== modified file 'lib/lp/bugs/interfaces/bugmessage.py'
--- lib/lp/bugs/interfaces/bugmessage.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/interfaces/bugmessage.py	2010-09-20 11:02:47 +0000
@@ -115,9 +115,6 @@
         to construct the correct URL.
         """)
     bugwatch = Attribute('The bugwatch to which the comment pertains.')
-    can_be_shown = Bool(
-        title=u'Whether or not the comment can be displayed',
-        readonly=True)
     show_for_admin = Bool(
         title=u'A hidden comment still displayed for admins.',
         readonly=True)

=== modified file 'lib/lp/bugs/scripts/bugnotification.py'
--- lib/lp/bugs/scripts/bugnotification.py	2010-09-06 09:11:43 +0000
+++ lib/lp/bugs/scripts/bugnotification.py	2010-09-20 11:02:47 +0000
@@ -105,25 +105,6 @@
     mail_wrapper = MailWrapper(width=72)
     content = '\n\n'.join(text_notifications)
     from_address = get_bugmail_from_address(person, bug)
-    # comment_syncing_team can be either None or '' to indicate unset.
-    if comment is not None and config.malone.comment_syncing_team:
-        # The first time we import comments from a bug watch, a comment
-        # notification is added, originating from the Bug Watch Updater.
-        bug_watch_updater = getUtility(
-            ILaunchpadCelebrities).bug_watch_updater
-        is_initial_import_notification = (comment.owner == bug_watch_updater)
-        bug_message = getUtility(IBugMessageSet).getByBugAndMessage(
-            bug, comment)
-        comment_syncing_team = getUtility(IPersonSet).getByName(
-            config.malone.comment_syncing_team)
-        # Only members of the comment syncing team should get comment
-        # notifications related to bug watches or initial comment imports.
-        if (is_initial_import_notification or
-            (bug_message is not None and bug_message.bugwatch is not None)):
-            recipients = dict(
-                (email_person, recipient)
-                for email_person, recipient in recipients.items()
-                if recipient.person.inTeam(comment_syncing_team))
     bug_notification_builder = BugNotificationBuilder(bug, person)
     sorted_recipients = sorted(
         recipients.items(), key=lambda t: t[0].preferredemail.email)

=== modified file 'lib/lp/bugs/scripts/tests/test_bugnotification.py'
--- lib/lp/bugs/scripts/tests/test_bugnotification.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/scripts/tests/test_bugnotification.py	2010-09-20 11:02:47 +0000
@@ -1,6 +1,5 @@
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
-
 """Tests for construction bug notification emails for sending."""
 
 __metaclass__ = type
@@ -109,7 +108,7 @@
         self.recipients = [MockBugNotificationRecipient()]
 
 
-class TestGetEmailNotificattions(unittest.TestCase):
+class TestGetEmailNotifications(unittest.TestCase):
     """Tests for the exception handling in get_email_notifications()."""
     layer = LaunchpadZopelessLayer
 
@@ -152,17 +151,6 @@
         # will abort the current transaction.
         commit()
 
-        # Disable limiting bug watch notifications to a team, so that
-        # the testing gets easier.
-        config.push(
-            'no-comment-syncing-team', dedent("""
-                [malone]
-                comment_syncing_team:
-                """))
-
-    def tearDown(self):
-        config.pop('no-comment-syncing-team')
-
     def _getAndCheckSentNotifications(self, notifications_to_send):
         """Return the notifications that were successfully sent.
 

=== modified file 'lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt'
--- lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt	2010-03-30 09:00:29 +0000
+++ lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt	2010-09-20 11:02:47 +0000
@@ -4,14 +4,6 @@
 formatted for display in a way that distinguishes them from comments
 entered within Launchpad itself.
 
-    >>> from canonical.config import config
-    >>> from textwrap import dedent
-    >>> test_data = dedent("""
-    ...     [malone]
-    ...     comment_syncing_team: None
-    ...     """)
-    >>> config.push('test_data', test_data)
-
     >>> user_browser.open('http://bugs.launchpad.dev/redfish/+bug/15')
     >>> remote_bug_comment = find_tags_by_class(
     ...     user_browser.contents, 'remoteBugComment', only_first=True)
@@ -118,6 +110,3 @@
     >>> footer = remote_bug_comment.find(attrs={'class': 'boardCommentFooter'})
     >>> 'Reply' in extract_text(footer)
     False
-
-
-    >>> test_config_data = config.pop('test_data')

=== modified file 'lib/lp/bugs/stories/bugwatches/xx-bugwatch-comments.txt'
--- lib/lp/bugs/stories/bugwatches/xx-bugwatch-comments.txt	2009-12-24 01:41:54 +0000
+++ lib/lp/bugs/stories/bugwatches/xx-bugwatch-comments.txt	2010-09-20 11:02:47 +0000
@@ -1,18 +1,29 @@
 = Comments Imported From a Bug Watch =
 
-We now support importing comments from remote bug trackers. Currently
-this is only available for the DebBugs bug tracker, but it will become
-more widely implemented in the near future.
+We now support importing comments from remote bug trackers.
 
 These comments can be displayed like any other comments on a bug. Bug
-#15 has a bug watch against a debbugs bug. If we look at the bug page we
-won't see any comments listed, since by default they're hidden from
-view.
+#15 has a bug watch against a debbugs bug.
 
     >>> user_browser.open('http://launchpad.dev/bugs/15')
     >>> print_comments(user_browser.contents)
+    <p>Package: gnome-volume...manager...
+    ----------------------------------------
+    <p>reassign 308994 pmount...
+    ----------------------------------------
+    <p>reassign 308994 gnome-volume-...
+    ----------------------------------------
+    <p>reassign 308994 pmount...
+    ----------------------------------------
+    <p>Hi!...Usually CD-ROMs are handled in /etc/fstab, so this might
+    not even be a...pmount bug...
+    ----------------------------------------
+    <p>I'll be happy to add the info you request to the bug report if it
+    will...
+    ----------------------------------------
 
-The page is not linked to, so we have to browse directly to it.
+The comments imported for a watch can be seen on that watch's +comments
+page. This page isn't linked to, so we need to browse to it directly.
 
     >>> user_browser.open('http://launchpad.dev/bugs/15/+watch/11/+comments')
     >>> user_browser.url
@@ -21,49 +32,6 @@
 The ordinary user can't see these comments:
 
     >>> print_comments(user_browser.contents)
-
-But members of the Launchpad Beta Testers team can see them. The comments
-that have been imported are displayed on the page in the same way as bug
-comments are displayed on bugs pages. We'll make Mark Shuttleworth a
-member of Launchpad Beta Testers in order to demonstrate this.
-
-    >>> from zope.component import getUtility
-    >>> from canonical.launchpad.interfaces import (
-    ...     ILaunchpadCelebrities, IPersonSet)
-    >>> from canonical.launchpad.ftests import login, logout
-    >>> login('foo.bar@xxxxxxxxxxxxx')
-    >>> mark = getUtility(IPersonSet).getByName('mark')
-    >>> launchpad_beta_testers = getUtility(
-    ...     ILaunchpadCelebrities).launchpad_beta_testers
-    >>> mark.inTeam(launchpad_beta_testers)
-    False
-
-    >>> logout()
-
-As we can see, mark cannot see the comments yet:
-
-    >>> mark_browser = setupBrowser(auth="Basic mark@xxxxxxxxxxx:test")
-    >>> mark_browser.open(
-    ...     'http://launchpad.dev/bugs/15/+watch/11/+comments')
-    >>> print_comments(mark_browser.contents)
-
-After joining the launchpad developers team, mark can now see the
-comments.
-
-    >>> login('foo.bar@xxxxxxxxxxxxx')
-    >>> mark = getUtility(IPersonSet).getByName('mark')
-    >>> foo_bar = getUtility(IPersonSet).getByName('name16')
-    >>> launchpad_beta_testers = getUtility(
-    ...     ILaunchpadCelebrities).launchpad_beta_testers
-    >>> ignored = launchpad_beta_testers.addMember(mark, reviewer=foo_bar)
-    >>> mark.inTeam(launchpad_beta_testers)
-    True
-
-    >>> logout()
-
-    >>> mark_browser.open(
-    ...     'http://launchpad.dev/bugs/15/+watch/11/+comments')
-    >>> print_comments(mark_browser.contents)
     <p>Package: gnome-volume...manager...
     ----------------------------------------
     <p>reassign 308994 pmount...
@@ -78,59 +46,3 @@
     <p>I'll be happy to add the info you request to the bug report if it
     will...
     ----------------------------------------
-
-The comments are also visible on their own pages to members of the
-Launchpad Beta Testers team such as mark:
-
-    >>> mark_browser.open(
-    ...     'http://bugs.launchpad.dev/redfish/+bug/15/comments/1')
-    >>> print_comments(mark_browser.contents)
-    <p>Package: gnome-volume-<wbr></wbr>manager<br />
-    Version: 1.2.0-1<br />
-    Severity: important</p>
-    <p>When gnome-volume-<wbr></wbr>manager automounts a dvd+rw
-    containing an fs in my dvd<br />
-    burner on my system, the volume is unreadable, since it gets
-    pmounted<br /> rw, and blocks get changed. unmounting the volume
-    reports a dirty<br /> dvd+rw. the same volume is readable if mounted
-    by hand with the<br /> read-only flag.</p> <p>I've filed a bug
-    upstream for this, which is here:</p> <p><a rel="nofollow"
-    href="http://bugzilla.gnome.org/show_bug.cgi?id=304070";>...</a></p>
-    <p>but wanted it in the debian bug database for user and maintainer
-    reference.</p>...
-
-The title bar of the comments will contain the comment number (which
-is also a permalink to the comment itself within Launchpad), a to the
-profile of the author of the comment, and a link to the to the remote
-bug from which the comment was imported.
-
-    >>> header = first_tag_by_class(mark_browser.contents,
-    ...     'boardCommentDetails')
-    >>> for link in header.findAll('a'):
-    ...     print "%s: %s" % (extract_text(link), link.get('href'))
-    Debian Bug tracker #308994: http://bugs.debian.org/...?bug=308994
-    josh: http://launchpad.dev/~jbuhl-nospam
-    gnome-volume-manager...: /redfish/+bug/15/comments/1
-    #1: /redfish/+bug/15/comments/1
-
-If mark leaves the Launchpad Beta Testers team the comment will no longer
-be visible to him:
-
-    >>> login('foo.bar@xxxxxxxxxxxxx')
-    >>> mark = getUtility(IPersonSet).getByName('mark')
-    >>> mark.leave(launchpad_beta_testers)
-    >>> mark.inTeam(launchpad_beta_testers)
-    False
-
-    >>> logout()
-
-    >>> mark_browser.open(
-    ...     'http://bugs.launchpad.dev/redfish/+bug/15/comments/1')
-    >>> print_comments(mark_browser.contents)
-
-Anonymous users can't see the comment either.
-
-    >>> anon_browser.open(
-    ...     'http://bugs.launchpad.dev/redfish/+bug/15/comments/1')
-    >>> print_comments(anon_browser.contents)
-

=== modified file 'lib/lp/bugs/templates/bugcomment-index.pt'
--- lib/lp/bugs/templates/bugcomment-index.pt	2009-09-02 15:52:06 +0000
+++ lib/lp/bugs/templates/bugcomment-index.pt	2010-09-20 11:02:47 +0000
@@ -9,8 +9,7 @@
   <body>
     <div metal:fill-slot="main" tal:define="comment view/comment">
       <h1 tal:content="view/page_title">Foo doesn't work</h1>
-      <tal:comment condition="comment/can_be_shown"
-                   replace="structure comment/@@+box-expanded-reply">
+      <tal:comment replace="structure comment/@@+box-expanded-reply">
       </tal:comment>
     </div>
 </body>

=== modified file 'lib/lp/bugs/templates/bugtask-index.pt'
--- lib/lp/bugs/templates/bugtask-index.pt	2010-08-20 13:33:51 +0000
+++ lib/lp/bugs/templates/bugtask-index.pt	2010-09-20 11:02:47 +0000
@@ -217,8 +217,8 @@
           <tal:is-comment
               define="comment comment_or_activity/comment|nothing"
               condition="comment">
-            <tal:comment-box condition="python: comment.can_be_shown and
-                                       (view.user_is_admin or
+            <tal:comment-box condition="python: (
+                                       view.user_is_admin or
                                        comment.visible)"
                              replace="structure comment/@@+box">
             </tal:comment-box>

=== modified file 'lib/lp/bugs/tests/test_doc.py'
--- lib/lp/bugs/tests/test_doc.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/tests/test_doc.py	2010-09-20 11:02:47 +0000
@@ -132,11 +132,6 @@
         tearDown=uploadQueueTearDown,
         layer=LaunchpadZopelessLayer
         ),
-    'bugnotification-comment-syncing-team.txt': LayeredDocFileSuite(
-        '../doc/bugnotification-comment-syncing-team.txt',
-        layer=LaunchpadZopelessLayer, setUp=bugNotificationSendingSetUp,
-        tearDown=bugNotificationSendingTearDown
-        ),
     'bugnotificationrecipients.txt-branchscanner': LayeredDocFileSuite(
         '../doc/bugnotificationrecipients.txt',
         setUp=branchscannerBugsSetUp,