Commit f7a3329c authored by Romain Courteaud's avatar Romain Courteaud 🐙

slapos_erp5: test Upgrade Decision local roles

parent 74f4cb3a
......@@ -22,6 +22,7 @@
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='category'>function/production/agent</multi_property>
<multi_property id='base_category'>source_project</multi_property>
<multi_property id='base_category'>function</multi_property>
</role>
<role id='Assignor'>
<property id='title'>Source Project Production Manager</property>
......@@ -30,6 +31,7 @@
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='category'>function/production/manager</multi_property>
<multi_property id='base_category'>source_project</multi_property>
<multi_property id='base_category'>function</multi_property>
</role>
<role id='Assignee'>
<property id='title'>User</property>
......
......@@ -1800,328 +1800,58 @@ class TestUpgradeDecisionModule(TestSlapOSGroupRoleSecurityMixin):
module = self.portal.upgrade_decision_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', 'R-MEMBER', self.user_id], True)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, 'R-MEMBER', ['Auditor', 'Author'])
['F-PRODUCTION*', 'F-CUSTOMER', self.user_id], True)
self.assertRoles(module, 'F-PRODUCTION*', ['Auditor'])
self.assertRoles(module, 'F-CUSTOMER', ['Auditor'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestUpgradeDecision(TestSlapOSGroupRoleSecurityMixin):
def test_GroupCompany(self):
upgrade_decision = self.portal.upgrade_decision_module.newContent(
portal_type='Upgrade Decision')
upgrade_decision.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(upgrade_decision,
['G-COMPANY', self.user_id], False)
self.assertRoles(upgrade_decision, 'G-COMPANY', ['Assignor'])
self.assertRoles(upgrade_decision, self.user_id, ['Owner'])
ticket_portal_type = 'Upgrade Decision'
def test_default(self):
support_request = self.portal.getDefaultModuleValue(self.ticket_portal_type).newContent(
portal_type=self.ticket_portal_type)
support_request.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(support_request,
[self.user_id], False)
self.assertRoles(support_request, self.user_id, ['Owner'])
def test_Customer(self):
reference = 'TESTPERSON-%s' % self.generateNewId()
person = self.portal.person_module.newContent(portal_type='Person',
reference=reference)
upgrade_decision = self.portal.upgrade_decision_module.newContent(
portal_type='Upgrade Decision',
support_request = self.portal.getDefaultModuleValue(self.ticket_portal_type).newContent(
portal_type=self.ticket_portal_type,
destination_decision_value=person,
)
upgrade_decision.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(upgrade_decision,
['G-COMPANY', person.getUserId(), self.user_id], False)
self.assertRoles(upgrade_decision, 'G-COMPANY', ['Assignor'])
self.assertRoles(upgrade_decision, person.getUserId(), ['Assignee'])
self.assertRoles(upgrade_decision, self.user_id, ['Owner'])
def test_ProjectMember(self):
project = self.addProject()
person = self.makePerson(project, user=1)
compute_node = self.portal.compute_node_module.newContent(
portal_type='Compute Node',
source_administration=person.getRelativeUrl())
project = self.portal.project_module.newContent(
portal_type='Project')
self.tic()
self.login(person.getUserId())
compute_node.ComputeNode_createMovement(
destination=person.getRelativeUrl(),
destination_project=project.getRelativeUrl())
self.login()
self.tic()
upgrade_decision = self.portal.upgrade_decision_module.newContent(
portal_type='Upgrade Decision',
destination_decision_value=person)
upgrade_decision.newContent(
portal_type="Upgrade Decision Line",
aggregate=compute_node.getRelativeUrl()
)
upgrade_decision.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(upgrade_decision,
['G-COMPANY', person.getUserId(), self.user_id, project.getReference()], False)
self.assertRoles(upgrade_decision, 'G-COMPANY', ['Assignor'])
self.assertRoles(upgrade_decision, person.getUserId(), ['Assignee'])
self.assertRoles(upgrade_decision, self.user_id, ['Owner'])
self.assertRoles(upgrade_decision, project.getReference(), ['Assignee'])
def test_ProjectMember_InstanceTree(self):
project = self.addProject()
person = self.makePerson(project, user=1)
instance_tree = self.portal.instance_tree_module.newContent(
portal_type='Instance Tree',
reference="INSTTREETEST-%s" % self.generateNewId(),
title="INSTTREETEST-%s" % self.generateNewId(),
destination_section=person.getRelativeUrl(),
follow_up_value=project)
project = self.portal.project_module.newContent(
portal_type='Project')
self.tic()
self.login(person.getUserId())
instance_tree.InstanceTree_createMovement(
destination_project=project.getRelativeUrl())
self.login()
self.tic()
upgrade_decision = self.portal.upgrade_decision_module.newContent(
portal_type='Upgrade Decision',
destination_decision_value=person)
upgrade_decision.newContent(
portal_type="Upgrade Decision Line",
aggregate=instance_tree.getRelativeUrl()
)
upgrade_decision.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(upgrade_decision,
['G-COMPANY', person.getUserId(), self.user_id, project.getReference()], False)
self.assertRoles(upgrade_decision, 'G-COMPANY', ['Assignor'])
self.assertRoles(upgrade_decision, person.getUserId(), ['Assignee'])
self.assertRoles(upgrade_decision, self.user_id, ['Owner'])
self.assertRoles(upgrade_decision, project.getReference(), ['Assignee'])
support_request.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(support_request,
[person.getUserId(), self.user_id], False)
self.assertRoles(support_request, person.getUserId(), ['Assignee'])
self.assertRoles(support_request, self.user_id, ['Owner'])
def test_OrganisationMember(self):
def test_SourceProject(self):
project = self.addProject()
person = self.makePerson(project, user=1)
compute_node = self.portal.compute_node_module.newContent(
portal_type='Compute Node',
follow_up_value=project)
organisation = self.portal.organisation_module.newContent(
portal_type='Organisation',
reference="TESTO-%s" % self.generateNewId())
self.tic()
self.login(person.getUserId())
compute_node.ComputeNode_createMovement(
destination=person.getRelativeUrl(),
destination_section=organisation.getRelativeUrl())
self.login()
self.tic()
upgrade_decision = self.portal.upgrade_decision_module.newContent(
portal_type='Upgrade Decision',
destination_decision_value=person)
support_request = self.portal.getDefaultModuleValue(self.ticket_portal_type).newContent(
portal_type=self.ticket_portal_type,
source_project_value=project)
support_request.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(support_request, [self.user_id,
'%s_F-PRODAGNT' % project.getReference(),
'%s_F-PRODMAN' % project.getReference()], False)
self.assertRoles(support_request, self.user_id, ['Owner'])
self.assertRoles(support_request, '%s_F-PRODMAN' % project.getReference(), ['Assignor'])
self.assertRoles(support_request, '%s_F-PRODAGNT' % project.getReference(), ['Assignee'])
upgrade_decision.newContent(
portal_type="Upgrade Decision Line",
aggregate=compute_node.getRelativeUrl()
)
upgrade_decision.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(upgrade_decision,
['G-COMPANY', person.getUserId(), self.user_id, organisation.getReference()], False)
self.assertRoles(upgrade_decision, 'G-COMPANY', ['Assignor'])
self.assertRoles(upgrade_decision, person.getUserId(), ['Assignee'])
self.assertRoles(upgrade_decision, self.user_id, ['Owner'])
self.assertRoles(upgrade_decision, organisation.getReference(), ['Assignee'])
def test_OrganisationMember_InstanceTree(self):
def test_DestinationProject(self):
project = self.addProject()
person = self.makePerson(project, user=1)
instance_tree = self.portal.instance_tree_module.newContent(
portal_type='Instance Tree',
reference="INSTTREETEST-%s" % self.generateNewId(),
title="INSTTREETEST-%s" % self.generateNewId(),
destination_section=person.getRelativeUrl(),
follow_up_value=project
)
organisation = self.portal.organisation_module.newContent(
portal_type='Organisation',
reference="TESTO-%s" % self.generateNewId())
self.tic()
self.login(person.getUserId())
instance_tree.InstanceTree_createMovement(
destination=organisation.getRelativeUrl())
self.login()
self.tic()
upgrade_decision = self.portal.upgrade_decision_module.newContent(
portal_type='Upgrade Decision',
destination_decision_value=person)
upgrade_decision.newContent(
portal_type="Upgrade Decision Line",
aggregate=instance_tree.getRelativeUrl()
)
upgrade_decision.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(upgrade_decision,
['G-COMPANY', person.getUserId(), self.user_id, organisation.getReference()], False)
self.assertRoles(upgrade_decision, 'G-COMPANY', ['Assignor'])
self.assertRoles(upgrade_decision, person.getUserId(), ['Assignee'])
self.assertRoles(upgrade_decision, self.user_id, ['Owner'])
self.assertRoles(upgrade_decision, organisation.getReference(), ['Assignee'])
class TestDataStreamModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataStreamModule(self):
module = self.portal.data_stream_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, 'R-COMPUTER', ['Auditor', 'Author'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataStream(TestSlapOSGroupRoleSecurityMixin):
def test_DataStream(self):
data_stream = self.portal.data_stream_module.newContent(
portal_type='Data Stream')
self.assertSecurityGroup(data_stream,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(data_stream, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_stream, 'R-COMPUTER', ['Assignor'])
self.assertRoles(data_stream, self.user_id, ['Owner'])
class TestDataIngestionModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataIngestionModule(self):
module = self.portal.data_ingestion_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, 'R-COMPUTER', ['Auditor', 'Author'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataIngestion(TestSlapOSGroupRoleSecurityMixin):
def test_DataIngestion(self):
data_ingestion = self.portal.data_ingestion_module.newContent(
portal_type='Data Ingestion')
self.assertSecurityGroup(data_ingestion,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(data_ingestion, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_ingestion, 'R-COMPUTER', ['Assignor'])
self.assertRoles(data_ingestion, self.user_id, ['Owner'])
class TestDataOperationModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataOperationModule(self):
module = self.portal.data_operation_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, 'R-COMPUTER', ['Auditor'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataOperation(TestSlapOSGroupRoleSecurityMixin):
def test_DataOperation(self):
data_operation = self.portal.data_operation_module.newContent(
portal_type='Data Operation')
self.assertSecurityGroup(data_operation,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(data_operation, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_operation, 'R-COMPUTER', ['Auditor'])
self.assertRoles(data_operation, self.user_id, ['Owner'])
class TestDataSupplyModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataSupplyModule(self):
module = self.portal.data_supply_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, 'R-COMPUTER', ['Auditor'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataSupply(TestSlapOSGroupRoleSecurityMixin):
def test_DataSupply(self):
data_supply = self.portal.data_supply_module.newContent(
portal_type='Data Supply')
self.assertSecurityGroup(data_supply,
['G-COMPANY', 'R-COMPUTER', self.user_id],
False)
self.assertRoles(data_supply, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_supply, 'R-COMPUTER', ['Auditor'])
self.assertRoles(data_supply, self.user_id, ['Owner'])
class TestDataMappingModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataMappingModule(self):
module = self.portal.data_mapping_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataMapping(TestSlapOSGroupRoleSecurityMixin):
def test_DataMapping(self):
data_mapping = self.portal.data_mapping_module.newContent(
portal_type='Data Mapping')
self.assertSecurityGroup(data_mapping,
['G-COMPANY', self.user_id],
False)
self.assertRoles(data_mapping, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_mapping, self.user_id, ['Owner'])
class TestDataTransformationModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataTransformationModule(self):
module = self.portal.data_transformation_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataTransformation(TestSlapOSGroupRoleSecurityMixin):
def test_DataTransformation(self):
data_transformation = self.portal.data_transformation_module.newContent(
portal_type='Data Transformation')
self.assertSecurityGroup(data_transformation,
['G-COMPANY', self.user_id],
False)
self.assertRoles(data_transformation, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_transformation, self.user_id, ['Owner'])
class TestDataArrayModule(TestSlapOSGroupRoleSecurityMixin):
def test_DataArrayModule(self):
module = self.portal.data_array_module
self.changeOwnership(module)
self.assertSecurityGroup(module,
['G-COMPANY', self.user_id],
False)
self.assertRoles(module, 'G-COMPANY', ['Auditor', 'Author'])
self.assertRoles(module, self.user_id, ['Owner'])
class TestDataArray(TestSlapOSGroupRoleSecurityMixin):
def test_DataArray(self):
data_array = self.portal.data_array_module.newContent(
portal_type='Data Array')
self.assertSecurityGroup(data_array,
['G-COMPANY', self.user_id],
False)
self.assertRoles(data_array, 'G-COMPANY', ['Assignor'])
self.assertRoles(data_array, self.user_id, ['Owner'])
support_request = self.portal.getDefaultModuleValue(self.ticket_portal_type).newContent(
portal_type=self.ticket_portal_type,
destination_project_value=project)
support_request.updateLocalRolesOnSecurityGroups()
self.assertSecurityGroup(support_request, [self.user_id,
'%s_F-PRODAGNT' % project.getReference(),
'%s_F-PRODMAN' % project.getReference()], False)
self.assertRoles(support_request, self.user_id, ['Owner'])
self.assertRoles(support_request, '%s_F-PRODMAN' % project.getReference(), ['Assignor'])
self.assertRoles(support_request, '%s_F-PRODAGNT' % project.getReference(), ['Assignee'])
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment