Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
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
Пример #4
0
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