def METHOD_NAME(phase_factory, user_factory, group_factory):
    phase, _, project, _ = setup_phase(phase_factory, None, phases.StatementPhase)
    anonymous, moderator, initiator = setup_users(project)
    user = user_factory()
    admin = user_factory(is_superuser=True)
    (
        project,
        group_member_in_org,
        group_member_in_pro,
        group_member_out,
    ) = setup_group_members(project, group_factory, user_factory)
    assert project.is_public
    with freeze_pre_phase(phase):
        assert not rules.has_perm(perm_name, anonymous, project)
        assert not rules.has_perm(perm_name, user, project)
        assert not rules.has_perm(perm_name, group_member_out, project)
        assert not rules.has_perm(perm_name, group_member_in_org, project)
        assert not rules.has_perm(perm_name, group_member_in_pro, project)
        assert not rules.has_perm(perm_name, moderator, project)
        assert rules.has_perm(perm_name, initiator, project)
        assert not rules.has_perm(perm_name, admin, project)