Esempio n. 1
0
def test_post_phase_project_archived(phase_factory, user, member_factory):
    phase, module, project, _ = setup_phase(phase_factory,
                                            None,
                                            phases.DebatePhase,
                                            module__project__is_archived=True)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    assert project.is_archived
    with freeze_post_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert not rules.has_perm(perm_name, member.member, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Esempio n. 2
0
def test_post_phase_project_archived(phase_factory, chapter_factory, user,
                                     member_factory):
    phase, _, project, item = setup_phase(phase_factory, chapter_factory,
                                          phases.CommentPhase,
                                          module__project__is_archived=True)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    assert project.is_archived
    with freeze_post_phase(phase):
        assert rules.has_perm(perm_name, anonymous, item)
        assert rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, member.member, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 3
0
def test_phase_active_project_draft(phase_factory, proposal_factory, user,
                                    member_factory):
    phase, _, project, item = setup_phase(phase_factory, proposal_factory,
                                          phases.RequestPhase,
                                          module__project__is_draft=True)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    assert project.is_draft
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert not rules.has_perm(perm_name, member.member, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 4
0
def test_phase_active(phase_factory, chapter_factory, paragraph_factory, user,
                      member_factory):
    phase, _, project, item = setup_phase(phase_factory, chapter_factory,
                                          phases.CommentPhase)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)
    paragraph = paragraph_factory(chapter=item)

    assert project.is_public
    with freeze_phase(phase):
        assert rules.has_perm(perm_name, anonymous, paragraph)
        assert rules.has_perm(perm_name, user, paragraph)
        assert rules.has_perm(perm_name, member.member, paragraph)
        assert rules.has_perm(perm_name, moderator, paragraph)
        assert rules.has_perm(perm_name, initiator, paragraph)
Esempio n. 5
0
def test_post_phase_project_archived(phase_factory, chapter_factory, user):
    phase, _, project, item = setup_phase(phase_factory,
                                          chapter_factory,
                                          phases.CommentPhase,
                                          module__project__is_archived=True)
    anonymous, moderator, initiator = setup_users(project)
    creator = item.creator

    assert project.is_archived
    with freeze_post_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert not rules.has_perm(perm_name, creator, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 6
0
def test_idea_rate_rules(admin, user, idea_factory, module):
    idea = idea_factory(module=module)
    user = UserFactory()
    assert not rules.has_perm('civic_europe_ideas.rate_idea', user, idea)
    idea.creator = user
    assert not rules.has_perm('civic_europe_ideas.rate_idea', user, idea)
    idea.co_workers.add(user)
    assert not rules.has_perm('civic_europe_ideas.rate_idea', user, idea)

    user2 = UserFactory()
    idea2 = idea_factory(creator=user2, module=module)

    with active_phase(module, phases.CommunityAwardRatingPhase):
        assert not rules.has_perm('civic_europe_ideas.rate_idea', user, idea)
        assert not rules.has_perm('civic_europe_ideas.rate_idea', user, idea2)
def test_phase_active_project_draft(phase_factory, proposal_factory, user):
    phase, _, project, item = setup_phase(phase_factory,
                                          proposal_factory,
                                          phases.RequestPhase,
                                          module__project__is_draft=True)
    anonymous, moderator, initiator = setup_users(project)
    creator = item.creator

    assert project.is_draft
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert not rules.has_perm(perm_name, creator, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 8
0
def test_phase_active_project_draft(phase_factory, chapter_factory,
                                    paragraph_factory, user):
    phase, _, project, item = setup_phase(phase_factory,
                                          chapter_factory,
                                          phases.CommentPhase,
                                          module__project__is_draft=True)
    anonymous, moderator, initiator = setup_users(project)
    paragraph = paragraph_factory(chapter=item)

    assert project.is_draft
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, paragraph)
        assert not rules.has_perm(perm_name, user, paragraph)
        assert rules.has_perm(perm_name, moderator, paragraph)
        assert rules.has_perm(perm_name, initiator, paragraph)
Esempio n. 9
0
def test_phase_active_project_draft(phase_factory, poll_factory, question,
                                    choice, vote, user, member_factory):
    phase, module, project, _ = setup_phase(phase_factory,
                                            poll_factory,
                                            phases.VotingPhase,
                                            module__project__is_draft=True)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    assert project.is_draft
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert not rules.has_perm(perm_name, member.member, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Esempio n. 10
0
def test_phase_active_project_private(phase_factory, maptopic_factory,
                                      user, user2):
    phase, _, project, item = setup_phase(phase_factory, maptopic_factory,
                                          phases.PrioritizePhase,
                                          module__project__is_public=False)
    anonymous, moderator, initiator = setup_users(project)
    participant = user2
    project.participants.add(participant)

    assert not project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, participant, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 11
0
def test_phase_active_project_private(phase_factory, user, user2):
    phase, module, project, _ = setup_phase(phase_factory, None,
                                            phases.CollectPhase,
                                            module__project__is_public=False)
    anonymous, moderator, initiator = setup_users(project)

    participant = user2
    project.participants.add(participant)

    assert not project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, participant, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Esempio n. 12
0
def test_phase_active_project_private(phase_factory, live_question_factory,
                                      user, user2):
    phase, _, project, item = setup_phase(phase_factory, live_question_factory,
                                          phases.IssuePhase,
                                          module__project__access=Access.
                                          PRIVATE)
    anonymous, moderator, initiator = setup_users(project)
    participant = user2
    project.participants.add(participant)

    assert not project.is_public
    with freeze_phase(phase):
        assert rules.has_perm(perm_name, anonymous, item)
        assert rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, participant, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 13
0
def test_phase_active_project_private(phase_factory, chapter_factory,
                                      paragraph_factory, user, user2):
    phase, _, project, item = setup_phase(phase_factory, chapter_factory,
                                          phases.CommentPhase,
                                          module__project__is_public=False)
    anonymous, moderator, initiator = setup_users(project)
    participant = user2
    project.participants.add(participant)
    paragraph = paragraph_factory(chapter=item)

    assert not project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, paragraph)
        assert not rules.has_perm(perm_name, user, paragraph)
        assert rules.has_perm(perm_name, participant, paragraph)
        assert rules.has_perm(perm_name, moderator, paragraph)
        assert rules.has_perm(perm_name, initiator, paragraph)
Esempio n. 14
0
def test_change_project(user_factory, group_factory, organisation,
                        project_factory):
    anonymous = AnonymousUser()
    user = user_factory()
    initiator = user_factory()
    admin = user_factory(is_superuser=True)

    group1 = group_factory()
    group2 = group_factory()
    group3 = group_factory()
    group4 = group_factory()
    group_member_in_orga = user_factory.create(groups=(group1, group2))
    group_member_out = user_factory.create(groups=(group2, group3))
    group_member_in_project = user_factory.create(groups=(group2, group4))

    organisation.initiators.add(initiator)
    organisation.groups.add(group1)
    project = project_factory(group=group4, organisation=organisation)

    assert not rules.has_perm(perm_name_change, anonymous, project)
    assert not rules.has_perm(perm_name_change, user, project)
    assert rules.has_perm(perm_name_change, initiator, project)
    assert rules.has_perm(perm_name_change, admin, project)
    assert not rules.has_perm(perm_name_change, group_member_in_orga, project)
    assert not rules.has_perm(perm_name_change, group_member_out, project)
    assert rules.has_perm(perm_name_change, group_member_in_project, project)
Esempio n. 15
0
def test_view_project_live(user_factory, group_factory, organisation,
                           project_factory, phase_factory):
    anonymous = AnonymousUser()
    user = user_factory()
    initiator = user_factory()
    admin = user_factory(is_superuser=True)

    group1 = group_factory()
    group2 = group_factory()
    group3 = group_factory()
    group4 = group_factory()
    group_member_in_orga = user_factory.create(groups=(group1, group2))
    group_member_out = user_factory.create(groups=(group2, group3))
    group_member_in_project = user_factory.create(groups=(group2, group4))

    organisation.initiators.add(initiator)
    organisation.groups.add(group1)
    project = project_factory(group=group4,
                              organisation=organisation,
                              is_draft=False)

    assert rules.has_perm(perm_name_view, anonymous, project)
    assert rules.has_perm(perm_name_view, user, project)
    assert rules.has_perm(perm_name_view, initiator, project)
    assert rules.has_perm(perm_name_view, admin, project)
    assert rules.has_perm(perm_name_view, group_member_in_orga, project)
    assert rules.has_perm(perm_name_view, group_member_out, project)
    assert rules.has_perm(perm_name_view, group_member_in_project, project)
def test_phase_active(phase_factory, user):
    phase, module, project, _ = setup_phase(phase_factory, None,
                                            phases.CollectPhase)
    anonymous, moderator, initiator = setup_users(project)

    assert project.is_public
    with freeze_pre_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
        assert not rules.has_perm(perm_name_2, anonymous, module)
        assert not rules.has_perm(perm_name_2, user, module)
        assert rules.has_perm(perm_name_2, moderator, module)
        assert rules.has_perm(perm_name_2, initiator, module)
Esempio n. 17
0
def test_rule(project, user, member_factory, admin):
    organisation = project.organisation
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=organisation)

    assert not rules.has_perm(perm_name, anonymous, organisation)
    assert not rules.has_perm(perm_name, user, organisation)
    assert not rules.has_perm(perm_name, moderator, organisation)
    assert not rules.has_perm(perm_name, member.member, organisation)
    assert rules.has_perm(perm_name, initiator, organisation)
    assert rules.has_perm(perm_name, admin, organisation)
Esempio n. 18
0
def test_journey_rules(admin, user, idea_factory):
    idea = idea_factory()
    creator = UserFactory()
    idea.creator = creator
    co_worker = UserFactory()
    idea.co_workers.set([co_worker])

    # proposal not winner
    assert not rules.has_perm('civic_europe_ideas.add_journey', user, idea)
    assert not rules.has_perm('civic_europe_ideas.add_journey', creator, idea)
    assert not rules.has_perm('civic_europe_ideas.add_journey', co_worker,
                              idea)
    assert rules.has_perm('civic_europe_ideas.add_journey', admin, idea)

    # proposal is winner!
    idea.is_winner = True
    assert not rules.has_perm('civic_europe_ideas.add_journey', user, idea)
    assert rules.has_perm('civic_europe_ideas.add_journey', creator, idea)
    assert rules.has_perm('civic_europe_ideas.add_journey', co_worker, idea)
    assert rules.has_perm('civic_europe_ideas.add_journey', admin, idea)
Esempio n. 19
0
def test_phase_active(phase_factory, topic_factory, user, member_factory):
    phase, _, project, item = setup_phase(phase_factory, topic_factory,
                                          phases.PrioritizePhase)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)
    creator = item.creator

    assert project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert not rules.has_perm(perm_name, member.member, item)
        assert not rules.has_perm(perm_name, creator, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 20
0
def test_pre_phase(phase_factory, proposal_factory, user, member_factory):
    phase, _, project, item = setup_phase(phase_factory, proposal_factory,
                                          phases.RequestPhase)
    anonymous, moderator, initiator = setup_users(project)
    creator = item.creator
    member = member_factory(organisation=project.organisation)

    assert project.is_public
    with freeze_pre_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert not rules.has_perm(perm_name, creator, item)
        assert not rules.has_perm(perm_name, member.member, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 21
0
def test_rule_project_private(offline_event_factory, user, user2,
                              member_factory):
    offline_event = offline_event_factory(project__is_public=False)
    project = offline_event.project
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)
    participant = user2
    project.participants.add(participant)

    assert not project.is_public
    assert not rules.has_perm(perm_name, anonymous, offline_event)
    assert not rules.has_perm(perm_name, user, offline_event)
    assert rules.has_perm(perm_name, member.member, offline_event)
    assert rules.has_perm(perm_name, participant, offline_event)
    assert rules.has_perm(perm_name, moderator, offline_event)
    assert rules.has_perm(perm_name, initiator, offline_event)
Esempio n. 22
0
def test_phase_active_project_private(phase_factory, subject_factory,
                                      user, user2, member_factory):
    phase, _, project, item = setup_phase(phase_factory, subject_factory,
                                          phases.DebatePhase,
                                          module__project__is_public=False)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)
    participant = user2
    project.participants.add(participant)

    assert not project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, item)
        assert not rules.has_perm(perm_name, user, item)
        assert rules.has_perm(perm_name, member.member, item)
        assert rules.has_perm(perm_name, participant, item)
        assert rules.has_perm(perm_name, moderator, item)
        assert rules.has_perm(perm_name, initiator, item)
Esempio n. 23
0
def test_phase_active_project_private(phase_factory, user, user2,
                                      member_factory):
    phase, module, project, _ = setup_phase(phase_factory, None,
                                            phases.CollectPhase,
                                            module__project__access=Access.
                                            PRIVATE)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)

    participant = user2
    project.participants.add(participant)

    assert not project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, module)
        assert not rules.has_perm(perm_name, user, module)
        assert rules.has_perm(perm_name, member.member, module)
        assert rules.has_perm(perm_name, participant, module)
        assert rules.has_perm(perm_name, moderator, module)
        assert rules.has_perm(perm_name, initiator, module)
Esempio n. 24
0
def test_add_project(user_factory, group_factory, organisation):
    anonymous = AnonymousUser()
    user = user_factory()
    initiator = user_factory()
    admin = user_factory(is_superuser=True)

    group1 = group_factory()
    group2 = group_factory()
    group3 = group_factory()
    group_member_in = user_factory.create(groups=(group1, group2))
    group_member_out = user_factory.create(groups=(group2, group3))

    organisation.initiators.add(initiator)
    organisation.groups.add(group1)

    assert not rules.has_perm(perm_name_add, anonymous, organisation)
    assert not rules.has_perm(perm_name_add, user, organisation)
    assert rules.has_perm(perm_name_add, initiator, organisation)
    assert rules.has_perm(perm_name_add, admin, organisation)
    assert rules.has_perm(perm_name_add, group_member_in, organisation)
    assert not rules.has_perm(perm_name_add, group_member_out, organisation)
Esempio n. 25
0
def test_phase_active_project_private(phase_factory, chapter_factory,
                                      paragraph_factory, user, user2,
                                      member_factory):
    phase, _, project, item = setup_phase(
        phase_factory,
        chapter_factory,
        phases.CommentPhase,
        module__project__access=Access.PRIVATE)
    anonymous, moderator, initiator = setup_users(project)
    member = member_factory(organisation=project.organisation)
    participant = user2
    project.participants.add(participant)
    paragraph = paragraph_factory(chapter=item)

    assert not project.is_public
    with freeze_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, paragraph)
        assert not rules.has_perm(perm_name, user, paragraph)
        assert rules.has_perm(perm_name, member.member, paragraph)
        assert rules.has_perm(perm_name, participant, paragraph)
        assert rules.has_perm(perm_name, moderator, paragraph)
        assert rules.has_perm(perm_name, initiator, paragraph)
Esempio n. 26
0
def test_idea_add_rule_idea_phase(user, module):
    with active_phase(module, phases.IdeaPhase):
        assert rules.has_perm('civic_europe_ideas.add_idea', user, module)
Esempio n. 27
0
def test_idea_view_rule(user):
    assert rules.has_perm('civic_europe_ideas.view_idea', user)
Esempio n. 28
0
 def would_have_perm(self, perm, obj):
     return rules.has_perm(perm, self, obj)
Esempio n. 29
0
 def has_perm(self, perm, *args, **kwargs):
     return rules.has_perm(perm, self, *args, **kwargs)
Esempio n. 30
0
 def has_module_perms(self, app_label):
     return rules.has_perm(app_label, self)
Esempio n. 31
0
def test_idea_add_rule_idea_community_rating_phase(user, module):
    with active_phase(module, phases.CommunityAwardRatingPhase):
        assert not rules.has_perm('civic_europe_ideas.add_idea', user, module)
Esempio n. 32
0
 def has_perm(self, user, rule):
     """
     Return True if user has permission.
     """
     return user.is_superuser or _rules.has_perm(rule, user, self.model)