Skip to content

Commit

Permalink
Add test that permissions are updated correctly.
Browse files Browse the repository at this point in the history
  • Loading branch information
Niklaus Johner committed Jun 9, 2022
1 parent 55c5134 commit c443c17
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
Binary file not shown.
67 changes: 67 additions & 0 deletions opengever/bundle/tests/test_os_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from ftw.builder import create
from opengever.base.indexes import sortable_title
from opengever.base.interfaces import IReferenceNumber
from opengever.base.role_assignments import ASSIGNMENT_VIA_SHARING
from opengever.base.role_assignments import RoleAssignmentManager
from opengever.base.role_assignments import SharingRoleAssignment
from opengever.base.security import elevated_privileges
Expand Down Expand Up @@ -1360,6 +1361,72 @@ def test_repository_migrator_merge_into_created_repofolder(self):
obj, parent_path=self.repository_root.absolute_url_path(),
parent_refnum='Client1 4')

def test_repository_migrator_modify_permissions(self):
self.login(self.manager)
migration_file = resource_filename('opengever.bundle.tests', 'assets/os_migration/os_test_modify_permissions.xlsx')
analysis_file = resource_filename('opengever.bundle.tests', 'assets/os_migration/test_analysis.xlsx')
analyser = RepositoryExcelAnalyser(migration_file, analysis_file)
analyser.analyse()

self.assertEqual([], self.get_changed_rows(analyser.analysed_rows))
self.assertEqual(4, len(analyser.analysed_rows))
self.assertEqual(4, len([row for row in analyser.analysed_rows if row["set_permissions"]]))

self.assertEqual(
[{'cause': 3, 'reference': None, 'roles': ['DossierManager'], 'principal': 'faivel.fruhling'}],
RoleAssignmentManager(self.branch_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertFalse(getattr(self.branch_repofolder, '__ac_local_roles_block__', False))

self.assertEqual(
[],
RoleAssignmentManager(self.leaf_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertFalse(getattr(self.leaf_repofolder, '__ac_local_roles_block__', False))

self.assertEqual(
[{'cause': 3, 'reference': None, 'roles': ['Contributor', 'Publisher'], 'principal': 'jurgen.fischer'}],
RoleAssignmentManager(self.empty_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertFalse(getattr(self.empty_repofolder, '__ac_local_roles_block__', False))

self.assertEqual(
[],
RoleAssignmentManager(self.inactive_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertFalse(getattr(self.inactive_repofolder, '__ac_local_roles_block__', False))

migrator = RepositoryMigrator(analyser.analysed_rows)
migrator.run()

# Local roles were removed
self.assertEqual(
[],
RoleAssignmentManager(self.branch_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertFalse(getattr(self.branch_repofolder, '__ac_local_roles_block__', False))

# Local roles added
self.assertEqual(
[{'cause': 3, 'reference': None, 'roles': ['Reviewer'], 'principal': 'faivel.fruhling'}],
RoleAssignmentManager(self.leaf_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertFalse(getattr(self.leaf_repofolder, '__ac_local_roles_block__', False))

# inheritance was blocked, local roles unchanged
self.assertEqual(
[{'cause': 3, 'reference': None, 'roles': ['Contributor', 'Publisher'], 'principal': 'jurgen.fischer'}],
RoleAssignmentManager(self.empty_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertTrue(getattr(self.empty_repofolder, '__ac_local_roles_block__', False))

# Local roles added and inheritance blocked
self.assertEqual(
[{'cause': 3, 'reference': None, 'roles': ['Reader', 'Editor'], 'principal': 'jurgen.fischer'}],
RoleAssignmentManager(self.inactive_repofolder).get_assignments_by_cause(ASSIGNMENT_VIA_SHARING)
)
self.assertTrue(getattr(self.inactive_repofolder, '__ac_local_roles_block__', False))


class TestOSMigrationValidation(IntegrationTestCase, OSMigrationTestMixin):

Expand Down

0 comments on commit c443c17

Please sign in to comment.