Fix removing todos for confidential issues
Todos for confidential issues should be removed for users who are
- non members or guest members of a project
- are NOT authors or assignees of a project
It doesn't matter what is the visibility of the project
The case we miss is when a project is made private.
Right now removing todos for non confidential issues are not covered in Todos::Destroy::ProjectPrivateService
. We're removing todos for users who do not have access to a private project. But in that private project there can still be confidential issues - these confidential issues can't be accessed by guests. We need to add removing todos for confidential issues for users who are guest and are not authors/assignees of those issues.
The todos for guests are not removed as they are members of the project. They can see project issues except for confidential issues. And we don't remove todos for confidential issues for these users.
Possible solution
- get all guest users of a project and all confidential issues
- remove todos for these users & issues - except for their authors & assignees (this makes it more complicated)