def test_save_role(self): from apps.icanhaz.models import VideoVisibilityPolicy owner = self.team.members.filter(role=ROLE_OWNER)[0] member = self.team.members.filter(role=ROLE_CONTRIBUTOR)[0] member.user.set_password("hey") member.user.save() tv = self.team.teamvideo_set.all()[0] video_url = reverse("videos:video", args=(tv.video.video_id, )) owner.user.set_password("hey") owner.user.save() policy = VideoVisibilityPolicy.objects.create_for_video( tv.video, VideoVisibilityPolicy.SITE_VISIBILITY_PRIVATE_OWNER, self.team, ) resp = self.client.get(video_url, follow=True) self.assertNotEqual(resp.status_code, 200) self.team.video_policy = Team.VP_MEMBER self.task_assign_policy = 10 self.team.save() self.assertTrue(can_add_video(self.team, member.user)) self.assertTrue(can_add_video_somewhere(self.team, member.user)) self.assertTrue(can_view_tasks_tab(self.team, member.user)) self.assertTrue(can_create_and_edit_subtitles(member.user, tv)) self.assertTrue(can_create_and_edit_translations(member.user, tv)) self.assertFalse(can_view_settings_tab(self.team, member.user)) save_role(self.team, member, ROLE_ADMIN, [], [], owner.user) member = TeamMember.objects.get(pk=member.pk) self.assertEqual(member.role, ROLE_ADMIN) self.assertTrue(can_add_video_somewhere(self.team, member.user)) self.assertTrue(can_view_tasks_tab(self.team, member.user)) self.assertTrue(can_create_and_edit_subtitles(member.user, tv)) self.assertTrue(can_create_and_edit_translations(member.user, tv)) self.assertTrue(can_view_settings_tab(self.team, member.user)) save_role(self.team, member, ROLE_CONTRIBUTOR, [], [], owner.user) member = TeamMember.objects.get(pk=member.pk) self.assertEqual(member.role, ROLE_CONTRIBUTOR) self.assertFalse(can_view_settings_tab(self.team, member.user)) self.assertTrue(can_add_video_somewhere(self.team, member.user)) self.assertTrue(can_view_tasks_tab(self.team, member.user)) self.assertTrue(can_create_and_edit_subtitles(member.user, tv)) self.assertTrue(can_create_and_edit_translations(member.user, tv)) self.client.login(username=member.user.username, password="******") resp = self.client.get(video_url, follow=True) self.assertEqual(resp.status_code, 200)
def test_save_role(self): owner = self.owner member_account = test_factories.create_user(username='******', password='******') member = test_factories.create_team_member( self.team, member_account, role=TeamMember.ROLE_CONTRIBUTOR) tv = self.project_video video_url = reverse("videos:video", args=(tv.video.video_id,)) owner.user.set_password("hey") owner.user.save() self.team.is_visible = False self.team.save() resp = self.client.get(video_url, follow=True) self.assertNotEqual(resp.status_code, 200) self.team.video_policy = Team.VP_MEMBER self.task_assign_policy = 10 self.team.save() self.assertTrue(can_add_video(self.team, member.user)) self.assertTrue(can_add_video_somewhere(self.team, member.user)) self.assertTrue(can_view_tasks_tab(self.team, member.user)) self.assertTrue(can_create_and_edit_subtitles(member.user, tv)) self.assertTrue(can_create_and_edit_translations(member.user, tv)) self.assertFalse(can_view_settings_tab(self.team, member.user)) save_role(self.team, member, ROLE_ADMIN, [], [], owner.user) member = TeamMember.objects.get(pk=member.pk) self.assertEqual(member.role, ROLE_ADMIN) self.assertTrue(can_add_video_somewhere(self.team, member.user)) self.assertTrue(can_view_tasks_tab(self.team, member.user)) self.assertTrue(can_create_and_edit_subtitles(member.user, tv)) self.assertTrue(can_create_and_edit_translations(member.user, tv)) self.assertTrue(can_view_settings_tab(self.team, member.user)) save_role(self.team, member, ROLE_CONTRIBUTOR, [], [], owner.user) member = TeamMember.objects.get(pk=member.pk) self.assertEqual(member.role, ROLE_CONTRIBUTOR) self.assertFalse(can_view_settings_tab(self.team, member.user)) self.assertTrue(can_add_video_somewhere(self.team, member.user)) self.assertTrue(can_view_tasks_tab(self.team, member.user)) self.assertTrue(can_create_and_edit_subtitles(member.user, tv)) self.assertTrue(can_create_and_edit_translations(member.user, tv)) self.client.login(username=member.user.username, password="******") resp = self.client.get(video_url, follow=True) self.assertEqual(resp.status_code, 200)
def team_move_video_select(context): user = context['user'] if user.is_authenticated(): team_video = context['team_video'] if team_video: qs = Team.objects.filter(users=user) context['teams'] = [ team for team in qs if can_add_video_somewhere(team, user) and can_remove_video( team_video, user) and team.pk != team_video.team.pk ] return context
def team_add_video_select(context): request = context['request'] #fix problem with encoding "?" in build_absolute_uri. It is not encoded, #so we get not same URL that page has location = request.get_full_path() user = context['user'] if user.is_authenticated(): qs = Team.objects.filter(users=user) context['teams'] = [ team for team in qs if can_add_video_somewhere(team, user) ] return context