Esempio n. 1
0
    def test_propagate_all(self):
        """Test clean propagation of all ACL entries."""
        with factories.single_commit():
            person = factories.PersonFactory()
            task = wf_factories.TaskGroupTaskFactory()
            audit = factories.AuditFactory()
            factories.RelationshipFactory(
                source=audit,
                destination=audit.program,
            )
            acl_ids = [
                factories.AccessControlListFactory(
                    ac_role=self.roles["Program"]["Program Editors"],
                    object=audit.program,
                    person=person,
                ).id
            ]
            factories.AccessControlListFactory(
                ac_role=self.roles["Workflow"]["Workflow Member"],
                object=task.workflow,
                person=person,
            )

        # propagate all non WF entries
        propagation._propagate(acl_ids)
        self.assertEqual(all_models.AccessControlList.query.count(), 4)
        all_models.AccessControlList.query.filter(
            all_models.AccessControlList.parent_id.isnot(None)).delete()
        self.assertEqual(all_models.AccessControlList.query.count(), 2)
        # propagate all including WF entries
        propagation.propagate_all()
        self.assertEqual(all_models.AccessControlList.query.count(), 6)
Esempio n. 2
0
  def test_propagate_all(self):
    """Test clean propagation of all ACL entries."""
    with factories.single_commit():
      person = factories.PersonFactory()
      task = wf_factories.TaskGroupTaskFactory()
      audit = factories.AuditFactory()
      factories.RelationshipFactory(
          source=audit,
          destination=audit.program,
      )
      acl_ids = [
          factories.AccessControlListFactory(
              ac_role=self.roles["Program"]["Program Editors"],
              object=audit.program,
              person=person,
          ).id
      ]
      factories.AccessControlListFactory(
          ac_role=self.roles["Workflow"]["Workflow Member"],
          object=task.workflow,
          person=person,
      )

    # propagate all non WF entries
    propagation._propagate(acl_ids)
    self.assertEqual(all_models.AccessControlList.query.count(), 4)
    all_models.AccessControlList.query.filter(
        all_models.AccessControlList.parent_id.isnot(None)
    ).delete()
    self.assertEqual(all_models.AccessControlList.query.count(), 2)
    # propagate all including WF entries
    propagation.propagate_all()
    self.assertEqual(all_models.AccessControlList.query.count(), 6)
  def test_creating_missing_acl_entries(self):
    """Test clean propagation of all ACL entries."""
    with factories.single_commit():
      audit = factories.AuditFactory()
      wf_factories.TaskGroupTaskFactory()
      factories.RelationshipFactory(source=audit, destination=audit.program)

    propagation.propagate_all()
    self.assertEqual(all_models.AccessControlList.query.count(), 25)
    all_models.AccessControlList.query.delete()
    db.session.commit()
    self.assertEqual(all_models.AccessControlList.query.count(), 0)
    propagation.propagate_all()
    self.assertEqual(all_models.AccessControlList.query.count(), 25)
Esempio n. 4
0
  def test_creating_missing_acl_entries(self):
    """Test clean propagation of all ACL entries."""
    with factories.single_commit():
      audit = factories.AuditFactory()
      wf_factories.TaskGroupTaskFactory()
      factories.RelationshipFactory(source=audit, destination=audit.program)

    propagation.propagate_all()
    self.assertEqual(all_models.AccessControlList.query.count(), 25)
    all_models.AccessControlList.query.delete()
    db.session.commit()
    self.assertEqual(all_models.AccessControlList.query.count(), 0)
    propagation.propagate_all()
    self.assertEqual(all_models.AccessControlList.query.count(), 25)
Esempio n. 5
0
    def test_propagate_all(self):
        """Test clean propagation of all ACL entries."""
        with factories.single_commit():
            wf_factories.TaskGroupTaskFactory()
            audit = factories.AuditFactory()
            factories.RelationshipFactory(
                source=audit,
                destination=audit.program,
            )

        acl_ids = [acl.id for acl in audit.program._access_control_list]

        propagation._propagate(acl_ids, self.user_id)
        self.assertEqual(all_models.AccessControlList.query.count(), 17)
        propagation.propagate_all()
        self.assertEqual(all_models.AccessControlList.query.count(), 25)
Esempio n. 6
0
  def test_propagate_all(self):
    """Test clean propagation of all ACL entries."""
    with factories.single_commit():
      wf_factories.TaskGroupTaskFactory()
      audit = factories.AuditFactory()
      factories.RelationshipFactory(
          source=audit,
          destination=audit.program,
      )

    acl_ids = [acl.id for acl in audit.program._access_control_list]

    propagation._propagate(acl_ids, self.user_id)
    self.assertEqual(all_models.AccessControlList.query.count(), 17)
    propagation.propagate_all()
    self.assertEqual(all_models.AccessControlList.query.count(), 25)
    def test_propagate_all(self):
        """Test clean propagation of all ACL entries."""
        with factories.single_commit():
            person = factories.PersonFactory()
            audit = factories.AuditFactory()
            factories.RelationshipFactory(
                source=audit,
                destination=audit.program,
            )
            acl_ids = [
                factories.AccessControlListFactory(
                    ac_role=self.roles["Program"]["Program Editors"],
                    object=audit.program,
                    person=person,
                ).id
            ]

        propagation._propagate(acl_ids)
        self.assertEqual(all_models.AccessControlList.query.count(), 3)
        propagation._delete_all_propagated_acls()
        self.assertEqual(all_models.AccessControlList.query.count(), 1)
        propagation.propagate_all()
        self.assertEqual(all_models.AccessControlList.query.count(), 3)