def test_image_permission_with_public_job(): g_reg_anon = Group.objects.get( name=settings.REGISTERED_AND_ANON_USERS_GROUP_NAME ) g_reg = Group.objects.get(name=settings.REGISTERED_USERS_GROUP_NAME) job = AlgorithmJobFactory() output_image = ImageFactory() civ = ComponentInterfaceValueFactory(image=output_image) job.outputs.add(civ) assert "view_image" not in get_perms(g_reg, output_image) assert "view_image" not in get_perms(g_reg_anon, output_image) assert "view_image" not in get_perms(g_reg, job.inputs.first().image) assert "view_image" not in get_perms(g_reg_anon, job.inputs.first().image) job.public = True job.save() assert "view_image" not in get_perms(g_reg, output_image) assert "view_image" in get_perms(g_reg_anon, output_image) assert "view_image" not in get_perms(g_reg, job.inputs.first().image) assert "view_image" in get_perms(g_reg_anon, job.inputs.first().image) job.public = False job.save() assert "view_image" not in get_perms(g_reg, output_image) assert "view_image" not in get_perms(g_reg_anon, output_image) assert "view_image" not in get_perms(g_reg, job.inputs.first().image) assert "view_image" not in get_perms(g_reg_anon, job.inputs.first().image)
def test_used_by_other_public_result_permissions(): g_reg_anon = Group.objects.get( name=settings.REGISTERED_AND_ANON_USERS_GROUP_NAME) g_reg = Group.objects.get(name=settings.REGISTERED_USERS_GROUP_NAME) j1 = AlgorithmJobFactory(public=True) j2 = AlgorithmJobFactory(public=True) shared_image = ImageFactory() civ1 = ComponentInterfaceValueFactory(image=shared_image) j1.outputs.add(civ1) civ2 = ComponentInterfaceValueFactory(image=shared_image) j2.outputs.add(civ2) assert "view_image" not in get_perms(g_reg, shared_image) assert "view_image" in get_perms(g_reg_anon, shared_image) j2.outputs.clear() assert "view_image" not in get_perms(g_reg, shared_image) assert "view_image" in get_perms(g_reg_anon, shared_image) j2.outputs.add(civ2) j2.public = False j2.save() assert "view_image" not in get_perms(g_reg, shared_image) assert "view_image" in get_perms(g_reg_anon, shared_image) j1.public = False j1.save() assert "view_image" not in get_perms(g_reg, shared_image) assert "view_image" not in get_perms(g_reg_anon, shared_image)
def test_public_job_group_permissions(): g_reg_anon = Group.objects.get( name=settings.REGISTERED_AND_ANON_USERS_GROUP_NAME) g_reg = Group.objects.get(name=settings.REGISTERED_USERS_GROUP_NAME) algorithm_job = AlgorithmJobFactory() assert "view_job" not in get_perms(g_reg, algorithm_job) assert "view_job" not in get_perms(g_reg_anon, algorithm_job) algorithm_job.public = True algorithm_job.save() assert "view_job" not in get_perms(g_reg, algorithm_job) assert "view_job" in get_perms(g_reg_anon, algorithm_job) algorithm_job.public = False algorithm_job.save() assert "view_job" not in get_perms(g_reg, algorithm_job) assert "view_job" not in get_perms(g_reg_anon, algorithm_job)