Better Privacy Workflow
Design
Filing Private Bugs
The project's bug team (project owner and bug supervisor) can choose to file bugs that are private to begin with.
User Interface
On the bug filing form, a new checkbox appears, just below the security checkbox, visibile only to members of the project's bug team. When the security checkbox is select, the privacy checkbox is disabled using javascript.
Marking Exisiting Bugs as Private
When marking existing bugs as private, it is possible to select which of the bugs subscribers (both direct and indirect) should be subscribed to the private bug (and so authorised to work with it).
User Interface
On the visibility form, the checkboxes for security and privacy change places, so that the privacy checkbox comes last. Under it, slightly indented appears a list of all subscribers to the bug with checkboxes next to them. If Javascript is available, this list is only made visible if the privacy checkbox is set. At the top of the list we add a checkbox for 'All' which automatically toggles all the checkboxes below it. If Javascript isn't available an informative bot of text appears next to the list, explaining that the checkboxes are only taken into consideration if the bug is made private.
Implementation
- Add a method, IBugTarget.userCanMakePrivate(user), which can be used to determine whether a user is allowed to file private bugs.
- Change the bug reporting form to include the additional privacy checkboxes for users who can use it.
- Change IBug.setPrivate so that it can take a list of subscribers (or list of 'unsubscribers', whatever turns out to be more convenient) and uses that, rather than unconditionally create direct subscriptions for all indirect ones.
- Modify the bug reporting form to include a privacy checkbox where appropriate.
- Modify the visibility form to include the subscribers checkboxes.