def test_can_message_all_members(self): team, user, outsider = self.team, self.user, self.outsider for r in [ROLE_ADMIN, ROLE_OWNER]: with self.role(r): self.assertTrue(can_message_all_members(team, user)) for r in [ROLE_ADMIN]: with self.role(r, self.test_project): self.assertFalse(can_message_all_members(team, user)) for r in [ROLE_CONTRIBUTOR, ROLE_MANAGER]: with self.role(r): self.assertFalse(can_message_all_members(team, user)) self.assertFalse(can_message_all_members(team, outsider))
def messageable_teams(self): from teams.models import Team from teams.permissions import can_message_all_members teams = self.teams.all() messageable_team_ids = [t.id for t in teams if can_message_all_members(t, self)] partners = self.managed_partners.all() teams = [list(p.teams.all()) for p in partners] partner_teams_ids = [team.id for qs in teams for team in qs] messageable_team_ids = messageable_team_ids + partner_teams_ids return Team.objects.filter(id__in=messageable_team_ids)