Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Romain Courteaud
slapos.core
Commits
71e0cb1b
Commit
71e0cb1b
authored
Feb 01, 2023
by
Romain Courteaud
🐸
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_erp5: WIP local roles test
parent
d094d4b1
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
751 additions
and
1091 deletions
+751
-1091
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Subscription%20Request.xml
...p5/PortalTypeRolesTemplateItem/Subscription%20Request.xml
+2
-0
master/bt5/slapos_erp5/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml
...rtalTypeWorkflowChainTemplateItem/workflow_chain_type.xml
+20
-0
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5GroupRoleSecurity.py
...l_components/test.erp5.testSlapOSERP5GroupRoleSecurity.py
+716
-538
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5LocalPermissionSlapOSInteractionWorkflow.py
...testSlapOSERP5LocalPermissionSlapOSInteractionWorkflow.py
+1
-549
master/bt5/slapos_erp5/WorkflowTemplateItem/portal_workflow/local_permission_slapos_interaction_workflow/interaction_ComputeNode_edit.xml
...pos_interaction_workflow/interaction_ComputeNode_edit.xml
+1
-4
master/bt5/slapos_erp5/WorkflowTemplateItem/portal_workflow/local_permission_slapos_interaction_workflow/interaction_SaleInvoiceTransaction_edit.xml
...tion_workflow/interaction_SaleInvoiceTransaction_edit.xml
+4
-0
master/bt5/slapos_erp5/WorkflowTemplateItem/portal_workflow/local_permission_slapos_interaction_workflow/interaction_SupportRequest_edit.xml
..._interaction_workflow/interaction_SupportRequest_edit.xml
+2
-0
master/bt5/slapos_erp5/bt/template_portal_type_workflow_chain_list
...5/slapos_erp5/bt/template_portal_type_workflow_chain_list
+5
-0
No files found.
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Subscription%20Request.xml
View file @
71e0cb1b
...
...
@@ -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,5 +31,6 @@
<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>
</type_roles>
\ No newline at end of file
master/bt5/slapos_erp5/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml
View file @
71e0cb1b
<workflow_chain>
<chain>
<type>
Accounting Transaction
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Acknowledgement
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
...
...
@@ -7,6 +11,10 @@
<type>
Allocation Supply
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Balance Transaction
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Cloud Contract
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
...
...
@@ -95,6 +103,10 @@
<type>
Project
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Purchase Invoice Transaction
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Purchase Packing List
</type>
<workflow>
-immobilisation_movement_interaction_workflow
</workflow>
...
...
@@ -107,6 +119,10 @@
<type>
Purchase Packing List Line
</type>
<workflow>
-immobilisation_movement_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Regularisation Request
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Remote Node
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
...
...
@@ -155,6 +171,10 @@
<type>
Support Request
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Upgrade Decision
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
</chain>
<chain>
<type>
Web Message
</type>
<workflow>
local_permission_slapos_interaction_workflow
</workflow>
...
...
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5GroupRoleSecurity.py
View file @
71e0cb1b
...
...
@@ -24,6 +24,7 @@ from erp5.component.test.SlapOSTestCaseMixin import SlapOSTestCaseMixinWithAbort
from
AccessControl
import
getSecurityManager
class
TestSlapOSGroupRoleSecurityCoverage
(
SlapOSTestCaseMixinWithAbort
):
maxDiff
=
None
def
testCoverage
(
self
):
""" Test which Portal types are not covered by this test.
...
...
@@ -36,9 +37,9 @@ class TestSlapOSGroupRoleSecurityCoverage(SlapOSTestCaseMixinWithAbort):
test_list
=
[]
for
pt
in
self
.
portal
.
portal_types
.
objectValues
():
if
len
(
pt
.
contentValues
(
portal_type
=
"Role Information"
))
>
0
:
test_klass
=
"class Test%s"
%
""
.
join
(
pt
.
getId
().
split
(
" "
))
test_klass
=
"class Test%s
(
"
%
""
.
join
(
pt
.
getId
().
split
(
" "
))
if
test_klass
not
in
test_source_code
:
test_list
.
append
(
test_klass
)
test_list
.
append
(
pt
.
getId
()
)
self
.
assertEqual
(
test_list
,
[])
...
...
@@ -48,13 +49,6 @@ class TestSlapOSGroupRoleSecurityMixin(SlapOSTestCaseMixinWithAbort):
SlapOSTestCaseMixinWithAbort
.
afterSetUp
(
self
)
self
.
user_id
=
getSecurityManager
().
getUser
().
getId
()
def
changeOwnership
(
self
,
document
):
""" Change the ownership of the document to the right and
expected user. Normally the user which setups the site.
"""
document
.
changeOwnership
(
getSecurityManager
().
getUser
(),
False
)
document
.
updateLocalRolesOnSecurityGroups
()
def
_getLocalRoles
(
self
,
context
):
return
[
x
[
0
]
for
x
in
context
.
get_local_roles
()]
...
...
@@ -90,33 +84,327 @@ class TestSlapOSGroupRoleSecurityMixin(SlapOSTestCaseMixinWithAbort):
)
class
TestAccountModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountModule
(
self
):
module
=
self
.
portal
.
account_module
self
.
assertSecurityGroup
(
module
,
[
'F-ACCOUNTING*'
,
module
.
Base_getOwnerId
(),
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
module
,
'F-ACCOUNTING*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestAccount
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingFunction
(
self
):
product
=
self
.
portal
.
account_module
.
newContent
(
portal_type
=
'Account'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
,
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestAccountingPeriod
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingFunction
(
self
):
product
=
self
.
portal
.
organisation_module
.
newContent
(
portal_type
=
'Organisation'
).
newContent
(
portal_type
=
'Accounting Period'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestAccountingTransactionModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingTransactionModule
(
self
):
module
=
self
.
portal
.
accounting_module
self
.
assertSecurityGroup
(
module
,
[
'F-ACCOUNTING*'
,
'F-PRODUCTION*'
,
module
.
Base_getOwnerId
(),
'R-SHADOW-PERSON'
,
'F-CUSTOMER'
],
True
)
self
.
assertRoles
(
module
,
'F-ACCOUNTING*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Assignor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestPaymentTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_PaymentTransaction_AccountingFunction_LedgerNotAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Payment Transaction'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_PaymentTransaction_AccountingFunction_LedgerAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Payment Transaction'
)
product
.
edit
(
ledger
=
'automated'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
'R-SHADOW-PERSON'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_PaymentTransaction_UserWithoutLedger
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Payment Transaction'
)
product
.
edit
(
destination_section_value
=
person
,
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_PaymentTransaction_UserLedger
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Payment Transaction'
)
product
.
edit
(
destination_section_value
=
person
,
ledger
=
'automated'
)
shadow_user_id
=
'SHADOW-%s'
%
person
.
getUserId
()
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
self
.
user_id
,
person
.
getUserId
(),
shadow_user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
shadow_user_id
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestSaleInvoiceTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SaleInvoiceTransaction_AccountingFunction_LedgerNotAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_SaleInvoiceTransaction_AccountingFunction_LedgerAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
)
product
.
edit
(
ledger
=
'automated'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
self
.
user_id
,
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_SaleInvoiceTransaction_User
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
)
product
.
edit
(
ledger
=
'automated'
,
destination_section_value
=
person
,
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
self
.
user_id
,
person
.
getUserId
(),
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestAccountingTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingTransaction_LedgerNotAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Accounting Transaction'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_AccountingTransaction_LedgerAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Accounting Transaction'
)
product
.
edit
(
ledger
=
'automated'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestBalanceTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingFunction_LedgerNotAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Balance Transaction'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_AccountingFunction_LedgerAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Balance Transaction'
)
product
.
edit
(
ledger
=
'automated'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestPurchaseInvoiceTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingFunction_LedgerNotAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Purchase Invoice Transaction'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_AccountingFunction_LedgerAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Purchase Invoice Transaction'
)
product
.
edit
(
ledger
=
'automated'
)
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCOUNTING*'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestAllocationSupplyModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AllocationSupplyModule
(
self
):
module
=
self
.
portal
.
allocation_supply_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestAllocationSupply
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AllocationSupply_default
(
self
):
supply
=
self
.
portal
.
allocation_supply_module
.
newContent
(
portal_type
=
'Allocation Supply'
)
self
.
assertSecurityGroup
(
supply
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
def
test_AllocationSupply_DestinationCustomer
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
supply
=
self
.
portal
.
allocation_supply_module
.
newContent
(
portal_type
=
'Allocation Supply'
)
supply
.
edit
(
destination_value
=
person
,
)
self
.
assertSecurityGroup
(
supply
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
supply
.
validate
()
self
.
assertSecurityGroup
(
supply
,
[
person
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
supply
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
supply
.
invalidate
()
self
.
assertSecurityGroup
(
supply
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
def
test_AllocationSupply_DestinationProject
(
self
):
project
=
self
.
addProject
()
supply
=
self
.
portal
.
allocation_supply_module
.
newContent
(
portal_type
=
'Allocation Supply'
)
supply
.
edit
(
destination_project_value
=
project
,
)
self
.
assertSecurityGroup
(
supply
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
supply
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
supply
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
supply
.
validate
()
self
.
assertSecurityGroup
(
supply
,
[
self
.
user_id
,
'%s_F-CUSTOMER'
%
project
.
getReference
(),
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
supply
,
'%s_F-CUSTOMER'
%
project
.
getReference
(),
[
'Auditor'
])
self
.
assertRoles
(
supply
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
supply
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
supply
.
invalidate
()
self
.
assertSecurityGroup
(
supply
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
self
.
assertRoles
(
supply
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
supply
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
supply
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
class
TestAssignment
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_Company_Group
(
self
):
def
test_
Assignment_
Company_Group
(
self
):
assignment
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
).
newContent
(
portal_type
=
'Assignment'
)
assignment
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
assignment
,
[
'F-IS*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
assignment
,
'F-IS*'
,
[
'Auditor'
])
self
.
assertRoles
(
assignment
,
self
.
user_id
,
[
'Owner'
])
class
TestComputeNodeModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_ComputeNodeModule
(
self
):
module
=
self
.
portal
.
compute_node_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'R-COMPUTER'
,
'F-CUSTOMER'
,
'R-INSTANCE'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-COMPUTER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-INSTANCE'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestComputeNode
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_
default
(
self
):
def
test_
ComputeNode_userId
(
self
):
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
)
compute_node
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
compute_node
,
[
self
.
user_id
,
compute_node
.
getUserId
()],
False
)
self
.
assertRoles
(
compute_node
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
compute_node
,
compute_node
.
getUserId
(),
[
'Assignor'
])
def
test_ProjectMember
(
self
):
compute_node
.
edit
(
user_id
=
None
)
self
.
assertSecurityGroup
(
compute_node
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
compute_node
,
self
.
user_id
,
[
'Owner'
])
def
test_ComputeNode_ProjectMember
(
self
):
project
=
self
.
addProject
()
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
,
portal_type
=
'Compute Node'
)
compute_node
.
edit
(
follow_up_value
=
project
)
compute_node
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
compute_node
,
[
self
.
user_id
,
compute_node
.
getUserId
(),
...
...
@@ -133,24 +421,35 @@ class TestComputeNode(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
compute_node
,
'%s_R-INSTANCE'
%
project
.
getReference
(),
[
'Auditor'
])
class
TestComputerModelModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_ComputerModelModule
(
self
):
module
=
self
.
portal
.
computer_model_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
'R-SHADOW-PERSON'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestComputerModel
(
TestSlapOSGroupRoleSecurityMixin
):
document_portal_type
=
'Computer Model'
def
test_default
(
self
):
def
test_
ComputerModel_
default
(
self
):
model
=
self
.
portal
.
getDefaultModuleValue
(
self
.
document_portal_type
).
newContent
(
portal_type
=
self
.
document_portal_type
)
model
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
model
,
[
'R-SHADOW-PERSON'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
model
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
model
,
self
.
user_id
,
[
'Owner'
])
def
test_ProjectMember
(
self
):
def
test_
ComputerModel_
ProjectMember
(
self
):
project
=
self
.
addProject
()
compute_node
=
self
.
portal
.
getDefaultModuleValue
(
self
.
document_portal_type
).
newContent
(
portal_type
=
self
.
document_portal_type
,
portal_type
=
self
.
document_portal_type
)
compute_node
.
edit
(
follow_up_value
=
project
)
compute_node
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
compute_node
,
[
self
.
user_id
,
'R-SHADOW-PERSON'
,
...
...
@@ -164,31 +463,17 @@ class TestComputerModel(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
compute_node
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
compute_node
,
'%s_F-CUSTOMER'
%
project
.
getReference
(),
[
'Auditor'
])
class
TestComputerModelModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
computer_model_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
'R-SHADOW-PERSON'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestComputeNodeModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
compute_node_module
self
.
changeOwnership
(
module
)
class
TestComputerNetworkModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_ComputerNetworkModule
(
self
):
module
=
self
.
portal
.
computer_network_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'
R-COMPUTER'
,
'F-CUSTOMER'
,
'R-INSTANCE'
,
self
.
user_id
],
[
'F-PRODUCTION*'
,
'
F-CUSTOMER'
,
'R-SHADOW-PERSON'
,
module
.
Base_getOwnerId
()
],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-COMPUTER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-INSTANCE'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestComputerNetwork
(
TestComputerModel
):
...
...
@@ -1105,24 +1390,24 @@ class TestAccount(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestCurrencyModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
def
test
_CurrencyModule
(
self
):
module
=
self
.
portal
.
currency_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'F-ACCOUNTING*'
,
'F-PRODUCTION*'
,
self
.
user_id
,
[
'F-ACCOUNTING*'
,
'F-PRODUCTION*'
,
module
.
Base_getOwnerId
()
,
'R-SHADOW-PERSON'
,
'F-CUSTOMER'
],
True
)
self
.
assertRoles
(
module
,
'F-ACCOUNTING*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestCurrency
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_
default
(
self
):
def
test_
Currency
(
self
):
product
=
self
.
portal
.
currency_module
.
newContent
(
portal_type
=
'Currency'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'F-ACCOUNTING*'
,
'F-PRODUCTION*'
,
self
.
user_id
,
'R-SHADOW-PERSON'
,
'F-CUSTOMER'
],
False
)
...
...
@@ -1132,165 +1417,22 @@ class TestCurrency(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
product
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestSaleTradeConditionModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
sale_trade_condition_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-MEMBER'
,
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Assignor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestSaleTradeCondition
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
sale_trade_condition_module
.
newContent
(
portal_type
=
'Sale Trade Condition'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestAccountingPeriod
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_AccountingFunction
(
self
):
product
=
self
.
portal
.
organisation_module
.
newContent
(
portal_type
=
'Organisation'
).
newContent
(
portal_type
=
'Accounting Period'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'F-ACCMAN'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
'F-ACCAGT'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestBankAccount
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
organisation_module
.
newContent
(
portal_type
=
'Organisation'
).
newContent
(
portal_type
=
'Bank Account'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestCampaignModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
campaign_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
self
.
user_id
],
True
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestCampaign
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
campaign_module
.
newContent
(
portal_type
=
'Campaign'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestIncidentResponseModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
incident_response_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
TestIncidentResponse
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
incident_response
=
self
.
portal
.
incident_response_module
.
newContent
(
portal_type
=
'Incident Response'
)
incident_response
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
incident_response
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
incident_response
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
incident_response
,
self
.
user_id
,
[
'Owner'
])
class
TestSubscriptionRequestModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
subscription_request_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
TestSubscriptionRequest
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
subscription_request
=
self
.
portal
.
subscription_request_module
.
newContent
(
portal_type
=
'Subscription Request'
)
subscription_request
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
subscription_request
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
subscription_request
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
subscription_request
,
self
.
user_id
,
[
'Owner'
])
class
TestSubscriptionConditionModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
subscription_condition_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
TestSubscriptionCondition
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
subscription_condition
=
self
.
portal
.
subscription_condition_module
.
newContent
(
portal_type
=
'Subscription Condition'
)
subscription_condition
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
subscription_condition
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
subscription_condition
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
subscription_condition
,
self
.
user_id
,
[
'Owner'
])
class
TestCashRegister
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
organisation_module
.
newContent
(
portal_type
=
'Organisation'
).
newContent
(
portal_type
=
'Cash Register'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestDocumentIngestionModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
document_ingestion_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
self
.
user_id
],
True
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestEventModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
event_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
self
.
user_id
],
True
)
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()
],
True
)
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestMailMessage
(
TestSlapOSGroupRoleSecurityMixin
):
event_portal_type
=
'Mail Message'
def
test_default
(
self
):
product
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
self
.
event_portal_type
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
...
...
@@ -1300,10 +1442,10 @@ class TestMailMessage(TestSlapOSGroupRoleSecurityMixin):
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
product
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
self
.
event_portal_type
,
portal_type
=
self
.
event_portal_type
)
product
.
edit
(
source_value
=
person
,
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
person
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
person
.
getUserId
(),
[
'Auditor'
])
...
...
@@ -1314,10 +1456,10 @@ class TestMailMessage(TestSlapOSGroupRoleSecurityMixin):
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
product
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
self
.
event_portal_type
,
portal_type
=
self
.
event_portal_type
)
product
.
edit
(
destination_value
=
person
,
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
person
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
person
.
getUserId
(),
[
'Auditor'
])
...
...
@@ -1326,12 +1468,11 @@ class TestMailMessage(TestSlapOSGroupRoleSecurityMixin):
def
test_SourceProject
(
self
):
project
=
self
.
addProject
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
self
.
event_portal_type
,
portal_type
=
self
.
event_portal_type
)
event
.
edit
(
source_project_value
=
project
)
event
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
event
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
...
...
@@ -1342,12 +1483,11 @@ class TestMailMessage(TestSlapOSGroupRoleSecurityMixin):
def
test_DestinationProject
(
self
):
project
=
self
.
addProject
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
self
.
event_portal_type
,
portal_type
=
self
.
event_portal_type
)
event
.
edit
(
destination_project_value
=
project
)
event
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
event
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
...
...
@@ -1380,89 +1520,347 @@ class TestFaxMessage(TestMailMessage):
class
TestLetter
(
TestMailMessage
):
event_portal_type
=
'Letter'
class
TestAcknowledgement
(
TestMailMessage
):
event_portal_type
=
'Acknowledgement'
class
TestAcknowledgement
(
TestMailMessage
):
event_portal_type
=
'Acknowledgement'
class
TestInstanceTreeModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_InstanceTreeModule
(
self
):
module
=
self
.
portal
.
instance_tree_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'R-COMPUTER'
,
'F-CUSTOMER'
,
'R-INSTANCE'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-COMPUTER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-INSTANCE'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestInstanceTree
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_InstanceTree_RelatedSoftwareInstanceGroup
(
self
):
reference
=
'TESTHS-%s'
%
self
.
generateNewId
()
subscription
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
)
subscription
.
edit
(
reference
=
reference
)
self
.
assertSecurityGroup
(
subscription
,
[
self
.
user_id
,
reference
],
False
)
self
.
assertRoles
(
subscription
,
reference
,
[
'Assignee'
])
self
.
assertRoles
(
subscription
,
self
.
user_id
,
[
'Owner'
])
def
test_InstanceTree_CustomOfTheInstanceTree
(
self
):
customer_reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
customer
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
customer_reference
)
reference
=
'TESTHS-%s'
%
self
.
generateNewId
()
subscription
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
reference
)
subscription
.
edit
(
destination_section_value
=
customer
)
self
.
assertSecurityGroup
(
subscription
,
[
self
.
user_id
,
reference
,
customer
.
getUserId
()],
False
)
self
.
assertRoles
(
subscription
,
reference
,
[
'Assignee'
])
self
.
assertRoles
(
subscription
,
customer
.
getUserId
(),
[
'Assignee'
])
self
.
assertRoles
(
subscription
,
self
.
user_id
,
[
'Owner'
])
def
test_InstanceTree_ProjectMember
(
self
):
project
=
self
.
addProject
()
reference
=
'TESTHS-%s'
%
self
.
generateNewId
()
project
=
self
.
portal
.
project_module
.
newContent
(
portal_type
=
'Project'
)
subscription
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
reference
)
subscription
.
edit
(
follow_up_value
=
project
)
self
.
assertSecurityGroup
(
subscription
,
[
self
.
user_id
,
reference
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
self
.
assertRoles
(
subscription
,
reference
,
[
'Assignee'
])
self
.
assertRoles
(
subscription
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
subscription
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
subscription
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
class
TestSoftwareInstallationModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SoftwareInstallationModule
(
self
):
module
=
self
.
portal
.
software_installation_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
'R-COMPUTER'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'R-COMPUTER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestSoftwareInstallation
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SoftwareInstallation_default
(
self
):
installation
=
self
.
portal
.
software_installation_module
.
newContent
(
portal_type
=
'Software Installation'
)
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
installation
,
self
.
user_id
,
[
'Owner'
])
def
test_SoftwareInstallation_ComputeNode
(
self
):
compute_node_reference
=
'TESTCOMP-%s'
%
self
.
generateNewId
()
compute_node
=
self
.
portal
.
compute_node_module
.
template_compute_node
\
.
Base_createCloneDocument
(
batch_mode
=
1
)
compute_node
.
edit
(
reference
=
compute_node_reference
)
installation
=
self
.
portal
.
software_installation_module
.
newContent
(
portal_type
=
'Software Installation'
)
installation
.
edit
(
aggregate_value
=
compute_node
)
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
,
compute_node
.
getUserId
()],
False
)
self
.
assertRoles
(
installation
,
compute_node
.
getUserId
(),
[
'Assignor'
])
self
.
assertRoles
(
installation
,
self
.
user_id
,
[
'Owner'
])
def
test_SoftwareInstallation_ProjectMember
(
self
):
project
=
self
.
addProject
()
installation
=
self
.
portal
.
software_installation_module
.
newContent
(
portal_type
=
'Software Installation'
)
installation
.
edit
(
follow_up_value
=
project
)
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
(),
'%s_F-CUSTOMER'
%
project
.
getReference
(),
],
False
)
self
.
assertRoles
(
installation
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
installation
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
self
.
assertRoles
(
installation
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
installation
,
'%s_F-CUSTOMER'
%
project
.
getReference
(),
[
'Auditor'
])
class
TestSoftwareInstanceModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SoftwareInstanceModule
(
self
):
module
=
self
.
portal
.
software_instance_module
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'R-COMPUTER'
,
'R-INSTANCE'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-COMPUTER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-INSTANCE'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestSoftwareInstance
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SoftwareInstance_default
(
self
):
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
)
self
.
assertSecurityGroup
(
instance
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
def
test_SoftwareInstance_CustomerOfTheInstance
(
self
):
customer_reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
customer
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
customer_reference
)
subscription_reference
=
'TESTHS-%s '
%
self
.
generateNewId
()
subscription
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
subscription_reference
,
destination_section
=
customer
.
getRelativeUrl
())
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
)
instance
.
edit
(
specialise
=
subscription
.
getRelativeUrl
())
self
.
assertSecurityGroup
(
instance
,
[
customer
.
getUserId
(),
subscription_reference
,
self
.
user_id
],
False
)
self
.
assertRoles
(
instance
,
customer
.
getUserId
(),
[
'Assignee'
])
self
.
assertRoles
(
instance
,
subscription_reference
,
[
'Assignee'
])
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
def
test_SoftwareInstance_ProjectMember
(
self
):
project
=
self
.
addProject
()
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
)
instance
.
edit
(
follow_up_value
=
project
)
self
.
assertSecurityGroup
(
instance
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
(),
],
False
)
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
instance
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
self
.
assertRoles
(
instance
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
def
test_SoftwareInstance_ComputeNode
(
self
):
compute_node_reference
=
'TESTCOMP-%s'
%
self
.
generateNewId
()
compute_node
=
self
.
portal
.
compute_node_module
.
template_compute_node
\
.
Base_createCloneDocument
(
batch_mode
=
1
)
compute_node
.
edit
(
reference
=
compute_node_reference
)
partition
=
compute_node
.
newContent
(
portal_type
=
'Compute Partition'
)
self
.
commit
()
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
)
instance
.
edit
(
aggregate_value
=
partition
)
self
.
assertSecurityGroup
(
instance
,
[
compute_node
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
instance
,
compute_node
.
getUserId
(),
[
'Assignor'
])
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
class
TestSlaveInstance
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SlaveInstance_default
(
self
):
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Slave Instance'
)
self
.
assertSecurityGroup
(
instance
,
[
self
.
user_id
],
False
)
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
def
test_SlaveInstance_CustomerOfTheInstance
(
self
):
customer_reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
customer
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
customer_reference
)
subscription_reference
=
'TESTHS-%s '
%
self
.
generateNewId
()
subscription
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
subscription_reference
,
destination_section
=
customer
.
getRelativeUrl
())
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Slave Instance'
)
instance
.
edit
(
specialise
=
subscription
.
getRelativeUrl
())
self
.
assertSecurityGroup
(
instance
,
[
customer
.
getUserId
(),
subscription_reference
,
self
.
user_id
],
False
)
self
.
assertRoles
(
instance
,
customer
.
getUserId
(),
[
'Assignee'
])
self
.
assertRoles
(
instance
,
subscription_reference
,
[
'Assignee'
])
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
def
test_SlaveInstance_ProjectMember
(
self
):
project
=
self
.
addProject
()
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Slave Instance'
)
instance
.
edit
(
follow_up_value
=
project
)
self
.
assertSecurityGroup
(
instance
,
[
self
.
user_id
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()
],
False
)
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
instance
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
self
.
assertRoles
(
instance
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
def
test_SlaveInstance_SoftwareInstanceWhichProvidesThisSlaveInstance
(
self
):
compute_node_reference
=
'TESTCOMP-%s'
%
self
.
generateNewId
()
compute_node
=
self
.
portal
.
compute_node_module
.
template_compute_node
\
.
Base_createCloneDocument
(
batch_mode
=
1
)
compute_node
.
edit
(
reference
=
compute_node_reference
)
partition
=
compute_node
.
newContent
(
portal_type
=
'Compute Partition'
)
provider_reference
=
'TESTSI-%s'
%
self
.
generateNewId
()
provider
=
self
.
portal
.
software_instance_module
\
.
template_software_instance
.
Base_createCloneDocument
(
batch_mode
=
1
)
provider
.
edit
(
reference
=
provider_reference
,
aggregate
=
partition
.
getRelativeUrl
())
provider
.
validate
()
self
.
tic
()
instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Slave Instance'
)
instance
.
edit
(
aggregate
=
partition
.
getRelativeUrl
())
self
.
assertSecurityGroup
(
instance
,
[
provider
.
getUserId
(),
compute_node
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
instance
,
provider
.
getUserId
(),
[
'Assignor'
])
self
.
assertRoles
(
instance
,
compute_node
.
getUserId
(),
[
'Assignor'
])
self
.
assertRoles
(
instance
,
self
.
user_id
,
[
'Owner'
])
class
TestNotificationMessageModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
notification_message_module
self
.
changeOwnership
(
module
)
class
TestSoftwareProductModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SoftwareProductModule
(
self
):
module
=
self
.
portal
.
software_product_module
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()],
False
)
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestNotificationMessage
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
notification_message_module
.
newContent
(
portal_type
=
'Notification Message'
)
product
.
updateLocalRolesOnSecurityGroups
(
)
class
TestSoftwareProduct
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_SoftwareProduct_default
(
self
):
product
=
self
.
portal
.
software_product_module
.
newContent
(
portal_type
=
'Software Product'
)
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
[
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestProductModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
product_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
self
.
user_id
],
True
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestProduct
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
product_module
.
newContent
(
portal_type
=
'Product'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
def
test_SoftwareProduct_Project
(
self
):
project
=
self
.
addProject
()
product
=
self
.
portal
.
software_product_module
.
newContent
(
portal_type
=
'Software Product'
)
product
.
edit
(
follow_up_value
=
project
)
self
.
assertSecurityGroup
(
product
,
[
self
.
user_id
,
'%s_F-CUSTOMER'
%
project
.
getReference
(),
'%s_F-PRODAGNT'
%
project
.
getReference
(),
'%s_F-PRODMAN'
%
project
.
getReference
()],
False
)
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
product
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
product
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
self
.
assertRoles
(
product
,
'%s_F-CUSTOMER'
%
project
.
getReference
(),
[
'Auditor'
])
class
TestSupportRequestModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
def
test
_SupportRequestModule
(
self
):
module
=
self
.
portal
.
support_request_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
self
.
user_id
],
True
)
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()
],
True
)
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestSupportRequest
(
TestSlapOSGroupRoleSecurityMixin
):
ticket_portal_type
=
'Support Request'
def
test_default
(
self
):
def
test_
SupportRequest_
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
):
def
test_
SupportRequest_
Customer
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
support_request
=
self
.
portal
.
getDefaultModuleValue
(
self
.
ticket_portal_type
).
newContent
(
portal_type
=
self
.
ticket_portal_type
,
portal_type
=
self
.
ticket_portal_type
)
support_request
.
edit
(
destination_decision_value
=
person
,
)
support_request
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
support_request
,
[
person
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
support_request
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
support_request
,
self
.
user_id
,
[
'Owner'
])
def
test_Template
(
self
):
def
test_
SupportRequest_
Template
(
self
):
support_request
=
self
.
portal
.
restrictedTraverse
(
getattr
(
self
.
portal
.
portal_preferences
,
'getPreferred%sTemplate'
%
self
.
ticket_portal_type
.
title
().
replace
(
' '
,
''
)
)())
assert
support_request
.
getPortalType
()
==
self
.
ticket_portal_type
support_request
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
support_request
,
[
support_request
.
Base_getOwnerId
(),
'R-MEMBER'
],
False
)
self
.
assertRoles
(
support_request
,
support_request
.
Base_getOwnerId
(),
[
'Owner'
])
...
...
@@ -1470,12 +1868,12 @@ class TestSupportRequest(TestSlapOSGroupRoleSecurityMixin):
self
.
assertPermissionsOfRole
(
support_request
,
'Auditor'
,
[
'Access contents information'
,
'View'
])
def
test_SourceProject
(
self
):
def
test_S
upportRequest_S
ourceProject
(
self
):
project
=
self
.
addProject
()
support_request
=
self
.
portal
.
getDefaultModuleValue
(
self
.
ticket_portal_type
).
newContent
(
portal_type
=
self
.
ticket_portal_type
,
portal_type
=
self
.
ticket_portal_type
)
support_request
.
edit
(
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
)
...
...
@@ -1483,12 +1881,12 @@ class TestSupportRequest(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
support_request
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
support_request
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
def
test_DestinationProject
(
self
):
def
test_
SupportRequest_
DestinationProject
(
self
):
project
=
self
.
addProject
()
support_request
=
self
.
portal
.
getDefaultModuleValue
(
self
.
ticket_portal_type
).
newContent
(
portal_type
=
self
.
ticket_portal_type
,
portal_type
=
self
.
ticket_portal_type
)
support_request
.
edit
(
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
)
...
...
@@ -1497,88 +1895,38 @@ class TestSupportRequest(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
support_request
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
class
Test
WebPage
Module
(
TestSlapOSGroupRoleSecurityMixin
):
class
Test
RegularisationRequest
Module
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
web_page_module
self
.
changeOwnership
(
module
)
module
=
self
.
portal
.
regularisation_request_module
self
.
assertSecurityGroup
(
module
,
[
'F-MARKETING*'
,
self
.
user_id
],
True
)
self
.
assertRoles
(
module
,
'F-MARKETING*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestWebPage
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_MarketingFunction
(
self
):
document
=
self
.
portal
.
web_page_module
.
newContent
(
portal_type
=
'Web Page'
)
document
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
document
,
[
'F-MARKETING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
document
,
'F-MARKETING*'
,
[
'Assignor'
])
self
.
assertRoles
(
document
,
self
.
user_id
,
[
'Owner'
])
class
TestWebTable
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_MarketingFunction
(
self
):
document
=
self
.
portal
.
web_page_module
.
newContent
(
portal_type
=
'Web Table'
)
document
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
document
,
[
'F-MARKETING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
document
,
'F-MARKETING*'
,
[
'Assignor'
])
self
.
assertRoles
(
document
,
self
.
user_id
,
[
'Owner'
])
class
TestWebIllustration
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_MarketingFunction
(
self
):
document
=
self
.
portal
.
web_page_module
.
newContent
(
portal_type
=
'Web Illustration'
)
document
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
document
,
[
'F-MARKETING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
document
,
'F-MARKETING*'
,
[
'Assignor'
])
self
.
assertRoles
(
document
,
self
.
user_id
,
[
'Owner'
])
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()],
True
)
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestIntegrationTool
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
portal_integrations
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'R-SHADOW-PERSON'
,
'ERP5TypeTestCase'
,
'G-COMPANY'
],
False
)
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'ERP5TypeTestCase'
,
[
'Owner'
])
class
TestRegularisationRequest
(
TestSupportRequest
):
ticket_portal_type
=
'Regularisation Request'
class
TestIntegrationSite
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
portal_integrations
self
.
changeOwnership
(
module
)
product
=
module
.
newContent
(
portal_type
=
'Integration Site'
)
self
.
assertSecurityGroup
(
product
,
[
'R-SHADOW-PERSON'
,
self
.
user_id
,
'G-COMPANY'
],
False
)
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestSystemEventModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
def
test
_SystemEventModule
(
self
):
module
=
self
.
portal
.
system_event_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'R-SHADOW-PERSON'
,
self
.
user_id
,
'F-IS*'
],
False
)
[
'R-SHADOW-PERSON'
,
module
.
Base_getOwnerId
()
,
'F-IS*'
],
False
)
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Author'
])
self
.
assertRoles
(
module
,
'F-IS*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
()
,
[
'Owner'
])
class
TestPayzenEvent
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_default
(
self
):
def
test_
PayzenEvent_
default
(
self
):
event
=
self
.
portal
.
system_event_module
.
newContent
(
portal_type
=
'Payzen Event'
)
event
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
event
,
[
'F-IS*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
event
,
'F-IS*'
,
[
'Auditor'
])
self
.
assertRoles
(
event
,
self
.
user_id
,
[
'Owner'
])
def
test_ShadowUser
(
self
):
def
test_
PayzenEvent_
ShadowUser
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
...
...
@@ -1587,7 +1935,6 @@ class TestPayzenEvent(TestSlapOSGroupRoleSecurityMixin):
event
.
edit
(
destination_section_value
=
person
,
)
event
.
updateLocalRolesOnSecurityGroups
()
shadow_user_id
=
'SHADOW-%s'
%
person
.
getUserId
()
self
.
assertSecurityGroup
(
event
,
[
'F-IS*'
,
self
.
user_id
,
shadow_user_id
],
False
)
...
...
@@ -1596,16 +1943,15 @@ class TestPayzenEvent(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
event
,
self
.
user_id
,
[
'Owner'
])
class
TestWechatEvent
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_default
(
self
):
def
test_
WechatEvent_
default
(
self
):
event
=
self
.
portal
.
system_event_module
.
newContent
(
portal_type
=
'Wechat Event'
)
event
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
event
,
[
'F-IS*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
event
,
'F-IS*'
,
[
'Auditor'
])
self
.
assertRoles
(
event
,
self
.
user_id
,
[
'Owner'
])
def
test_ShadowUser
(
self
):
def
test_
WechatEvent_
ShadowUser
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
...
...
@@ -1614,7 +1960,6 @@ class TestWechatEvent(TestSlapOSGroupRoleSecurityMixin):
event
.
edit
(
destination_section_value
=
person
,
)
event
.
updateLocalRolesOnSecurityGroups
()
shadow_user_id
=
'SHADOW-%s'
%
person
.
getUserId
()
self
.
assertSecurityGroup
(
event
,
[
'F-IS*'
,
self
.
user_id
,
shadow_user_id
],
False
)
...
...
@@ -1622,250 +1967,46 @@ class TestWechatEvent(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
event
,
shadow_user_id
,
[
'Assignee'
])
self
.
assertRoles
(
event
,
self
.
user_id
,
[
'Owner'
])
class
TestSecurePaymentTool
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_no_permissions_for_users
(
self
):
tool
=
self
.
portal
.
portal_secure_payments
self
.
assertPermissionsOfRole
(
tool
,
'Anonymous'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Assignee'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Assignor'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Associate'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Auditor'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Authenticated'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Author'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Member'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Owner'
,
[])
self
.
assertPermissionsOfRole
(
tool
,
'Reviewer'
,
[])
self
.
assertAcquiredPermissions
(
tool
,
[
'Add ERP5 SQL Methods'
])
class
TestBusinessProcessModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
business_process_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-MEMBER'
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestBusinessProcess
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
business_process_module
.
newContent
(
portal_type
=
'Business Process'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestRegularisationRequestModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
regularisation_request_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'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
TestRegularisationRequest
(
TestSupportRequest
):
ticket_portal_type
=
'Regularisation Request'
class
TestInvitationTokenModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
invitation_token_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
TestContractInvitationToken
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
invitation_token_module
.
newContent
(
portal_type
=
'Contract Invitation Token'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestAccessTokenModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
access_token_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
'R-MEMBER'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Author'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestOneTimeRestrictedAccessToken
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
access_token_module
.
newContent
(
portal_type
=
'One Time Restricted Access Token'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestRestrictedAccessToken
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
access_token_module
.
newContent
(
portal_type
=
'Restricted Access Token'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestConsumptionDocumentModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
consumption_document_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'R-COMPUTER'
,
'R-MEMBER'
,
self
.
user_id
,
'G-COMPANY'
],
False
)
self
.
assertRoles
(
module
,
'R-COMPUTER'
,
[
'Author'
])
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Author'
,
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestComputerConsumptionTioXMLFile
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
text
=
self
.
portal
.
consumption_document_module
.
newContent
(
portal_type
=
'Computer Consumption TioXML File'
)
self
.
assertSecurityGroup
(
text
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
text
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
text
,
self
.
user_id
,
[
'Owner'
])
class
TestUserConsumptionHTMLFile
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
text
=
self
.
portal
.
consumption_document_module
.
newContent
(
portal_type
=
'User Consumption HTML File'
)
self
.
assertSecurityGroup
(
text
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
text
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
text
,
self
.
user_id
,
[
'Owner'
])
def
test_CustomerAssignee
(
self
):
customer_reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
customer
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
customer_reference
)
reference
=
'TESTRC-%s'
%
self
.
generateNewId
()
html_document
=
self
.
portal
.
consumption_document_module
.
newContent
(
portal_type
=
'User Consumption HTML File'
,
reference
=
reference
,
contributor
=
customer
.
getRelativeUrl
())
html_document
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
html_document
,
[
'G-COMPANY'
,
customer
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
html_document
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
html_document
,
customer
.
getUserId
(),
[
'Assignee'
])
self
.
assertRoles
(
html_document
,
self
.
user_id
,
[
'Owner'
])
class
TestDocumentModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
document_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Author'
,
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestPDF
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
text
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'PDF'
)
self
.
assertSecurityGroup
(
text
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
text
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
text
,
self
.
user_id
,
[
'Owner'
])
class
TestCloudContractModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
cloud_contract_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
self
.
user_id
,
'G-COMPANY'
,
'R-MEMBER'
,
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Author'
,
'Auditor'
])
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
class
TestCloudContract
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
contract
=
self
.
portal
.
cloud_contract_module
.
newContent
(
portal_type
=
'Cloud Contract'
)
self
.
assertSecurityGroup
(
contract
,
[
'G-COMPANY'
,
'R-SHADOW-PERSON'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
contract
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
contract
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
contract
,
self
.
user_id
,
[
'Owner'
])
def
test_Customer
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
contract
=
person
.
Person_generateCloudContract
(
batch
=
True
)
self
.
assertSecurityGroup
(
contract
,
[
'G-COMPANY'
,
person
.
getUserId
(),
'R-SHADOW-PERSON'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
contract
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
contract
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
contract
,
'R-SHADOW-PERSON'
,
[
'Auditor'
])
self
.
assertRoles
(
contract
,
self
.
user_id
,
[
'Owner'
])
class
TestUpgradeDecisionModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
upgrade_decision_module
self
.
changeOwnership
(
module
)
self
.
assertSecurityGroup
(
module
,
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
self
.
user_id
],
True
)
[
'F-PRODUCTION*'
,
'F-CUSTOMER'
,
module
.
Base_getOwnerId
()
],
True
)
self
.
assertRoles
(
module
,
'F-PRODUCTION*'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
'F-CUSTOMER'
,
[
'Auditor'
])
self
.
assertRoles
(
module
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
()
,
[
'Owner'
])
class
TestUpgradeDecision
(
TestSlapOSGroupRoleSecurityMixin
):
ticket_portal_type
=
'Upgrade Decision'
def
test_default
(
self
):
def
test_
UpgradeDecision_
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
):
def
test_
UpgradeDecision_
Customer
(
self
):
reference
=
'TESTPERSON-%s'
%
self
.
generateNewId
()
person
=
self
.
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
reference
=
reference
)
support_request
=
self
.
portal
.
getDefaultModuleValue
(
self
.
ticket_portal_type
).
newContent
(
portal_type
=
self
.
ticket_portal_type
,
portal_type
=
self
.
ticket_portal_type
)
support_request
.
edit
(
destination_decision_value
=
person
,
)
support_request
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
support_request
,
[
person
.
getUserId
(),
self
.
user_id
],
False
)
self
.
assertRoles
(
support_request
,
person
.
getUserId
(),
[
'A
ssignee
'
])
self
.
assertRoles
(
support_request
,
person
.
getUserId
(),
[
'A
uditor
'
])
self
.
assertRoles
(
support_request
,
self
.
user_id
,
[
'Owner'
])
def
test_SourceProject
(
self
):
def
test_
UpgradeDecision_
SourceProject
(
self
):
project
=
self
.
addProject
()
support_request
=
self
.
portal
.
getDefaultModuleValue
(
self
.
ticket_portal_type
).
newContent
(
portal_type
=
self
.
ticket_portal_type
,
portal_type
=
self
.
ticket_portal_type
)
support_request
.
edit
(
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
)
...
...
@@ -1873,15 +2014,52 @@ class TestUpgradeDecision(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
support_request
,
'%s_F-PRODMAN'
%
project
.
getReference
(),
[
'Assignor'
])
self
.
assertRoles
(
support_request
,
'%s_F-PRODAGNT'
%
project
.
getReference
(),
[
'Assignee'
])
def
test_DestinationProject
(
self
):
def
test_
UpgradeDecision_
DestinationProject
(
self
):
project
=
self
.
addProject
()
support_request
=
self
.
portal
.
getDefaultModuleValue
(
self
.
ticket_portal_type
).
newContent
(
portal_type
=
self
.
ticket_portal_type
,
portal_type
=
self
.
ticket_portal_type
)
support_request
.
edit
(
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'
])
class
TestWebPageModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
web_page_module
self
.
assertSecurityGroup
(
module
,
[
'F-MARKETING*'
,
module
.
Base_getOwnerId
()],
True
)
self
.
assertRoles
(
module
,
'F-MARKETING*'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
module
.
Base_getOwnerId
(),
[
'Owner'
])
class
TestWebPage
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_MarketingFunction
(
self
):
document
=
self
.
portal
.
web_page_module
.
newContent
(
portal_type
=
'Web Page'
)
self
.
assertSecurityGroup
(
document
,
[
'F-MARKETING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
document
,
'F-MARKETING*'
,
[
'Assignor'
])
self
.
assertRoles
(
document
,
self
.
user_id
,
[
'Owner'
])
class
TestWebTable
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_MarketingFunction
(
self
):
document
=
self
.
portal
.
web_page_module
.
newContent
(
portal_type
=
'Web Table'
)
self
.
assertSecurityGroup
(
document
,
[
'F-MARKETING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
document
,
'F-MARKETING*'
,
[
'Assignor'
])
self
.
assertRoles
(
document
,
self
.
user_id
,
[
'Owner'
])
class
TestWebIllustration
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_MarketingFunction
(
self
):
document
=
self
.
portal
.
web_page_module
.
newContent
(
portal_type
=
'Web Illustration'
)
self
.
assertSecurityGroup
(
document
,
[
'F-MARKETING*'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
document
,
'F-MARKETING*'
,
[
'Assignor'
])
self
.
assertRoles
(
document
,
self
.
user_id
,
[
'Owner'
])
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5LocalPermissionSlapOSInteractionWorkflow.py
View file @
71e0cb1b
...
...
@@ -34,76 +34,6 @@ class TestSlapOSLocalPermissionSlapOSInteractionWorkflow(
self
.
person_reference
=
self
.
person_user
.
getReference
()
self
.
person_user_id
=
self
.
person_user
.
getUserId
()
def
test_ComputerModel_edit
(
self
):
self
.
_makePerson
()
model
=
self
.
portal
.
computer_model_module
.
newContent
(
portal_type
=
'Computer Model'
)
self
.
assertSecurityGroup
(
model
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
model
.
edit
(
source_administration
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
model
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_ComputerNetwork_edit
(
self
):
self
.
_makePerson
()
network
=
self
.
portal
.
computer_network_module
.
newContent
(
portal_type
=
'Computer Network'
)
self
.
assertSecurityGroup
(
network
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-SHADOW-PERSON'
],
False
)
network
.
edit
(
source_administration
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
network
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
,
'R-SHADOW-PERSON'
],
False
)
def
test_ComputeNode_setUserId
(
self
):
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
)
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
compute_node
.
getUserId
()],
False
)
compute_node
.
edit
(
user_id
=
None
)
self
.
commit
()
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
def
test_ComputeNode_setSourceAdministration
(
self
):
self
.
_makePerson
()
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
)
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
compute_node
.
getUserId
()],
False
)
compute_node
.
edit
(
source_administration
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
,
compute_node
.
getUserId
()],
False
)
def
test_ComputeNode_setAllocationScope
(
self
):
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
)
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
compute_node
.
getUserId
()],
False
)
compute_node
.
edit
(
allocation_scope
=
'open/public'
)
self
.
commit
()
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-SHADOW-PERSON'
,
compute_node
.
getUserId
()],
False
)
def
test_ComputeNode_setDestinationSection
(
self
):
self
.
_makePerson
()
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
)
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
compute_node
.
getUserId
()],
False
)
compute_node
.
edit
(
source_administration
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
compute_node
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
,
compute_node
.
getUserId
()],
False
)
def
test_ComputeNode_reindexObject
(
self
):
compute_node
=
self
.
portal
.
compute_node_module
.
template_compute_node
\
...
...
@@ -130,35 +60,6 @@ class TestSlapOSLocalPermissionSlapOSInteractionWorkflow(
self
.
assertEqual
(
comment
,
compute_node
.
workflow_history
[
'edit_workflow'
][
-
1
][
'comment'
])
def
test_InstanceTree_setReference
(
self
):
instance_tree
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
)
self
.
assertSecurityGroup
(
instance_tree
,
[
self
.
user_id
,
instance_tree
.
getId
(),
'G-COMPANY'
],
False
)
instance_tree
.
edit
(
reference
=
'TESTHS-%s'
%
self
.
generateNewId
())
self
.
commit
()
self
.
assertSecurityGroup
(
instance_tree
,
[
self
.
user_id
,
instance_tree
.
getReference
(),
'G-COMPANY'
],
False
)
def
test_InstanceTree_setDestinationSection
(
self
):
self
.
_makePerson
()
instance_tree
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
)
self
.
assertSecurityGroup
(
instance_tree
,
[
self
.
user_id
,
instance_tree
.
getId
(),
'G-COMPANY'
],
False
)
instance_tree
.
edit
(
destination_section
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
instance_tree
,
[
self
.
user_id
,
instance_tree
.
getId
(),
self
.
person_user
.
getUserId
(),
'G-COMPANY'
],
False
)
def
test_Person_setReference
(
self
):
# Due the change of security the interaction workflow don't trigger
...
...
@@ -182,177 +83,6 @@ class TestSlapOSLocalPermissionSlapOSInteractionWorkflow(
self
.
assertSecurityGroup
(
person
,
[
self
.
user_id
,
'G-COMPANY'
,
person
.
getUserId
(),
'SHADOW-%s'
%
person
.
getUserId
()],
False
)
def
test_SoftwareInstallation_setAggregate
(
self
):
installation
=
self
.
portal
.
software_installation_module
.
newContent
(
portal_type
=
'Software Installation'
)
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
compute_node
=
self
.
portal
.
compute_node_module
.
newContent
(
portal_type
=
'Compute Node'
,
reference
=
'TESTC-%s'
%
self
.
generateNewId
())
installation
.
edit
(
aggregate
=
compute_node
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
,
'G-COMPANY'
,
compute_node
.
getUserId
()],
False
)
def
test_SoftwareInstallation_setDestinationSection
(
self
):
installation
=
self
.
portal
.
software_installation_module
.
newContent
(
portal_type
=
'Software Installation'
)
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
self
.
_makePerson
()
installation
.
edit
(
destination_section
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
installation
,
[
self
.
user_id
,
'G-COMPANY'
,
self
.
person_user
.
getUserId
()],
False
)
def
test_SoftwareInstance_setSpecialise
(
self
):
software_instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
)
self
.
assertSecurityGroup
(
software_instance
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
instance_tree
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
'TESTHS-%s'
%
self
.
generateNewId
())
software_instance
.
edit
(
specialise
=
instance_tree
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
software_instance
,
[
self
.
user_id
,
'G-COMPANY'
,
instance_tree
.
getReference
()],
False
)
def
test_SoftwareInstance_setAggregate
(
self
):
instance_tree
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
'TESTHS-%s'
%
self
.
generateNewId
())
software_instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
,
specialise
=
instance_tree
.
getRelativeUrl
())
certificate_login
=
software_instance
.
newContent
(
portal_type
=
'Certificate Login'
)
self
.
assertSecurityGroup
(
software_instance
,
[
self
.
user_id
,
'G-COMPANY'
,
instance_tree
.
getReference
()],
False
)
self
.
assertSecurityGroup
(
certificate_login
,
[
self
.
user_id
,
software_instance
.
getUserId
()],
False
)
compute_node
=
self
.
portal
.
compute_node_module
.
template_compute_node
\
.
Base_createCloneDocument
(
batch_mode
=
1
)
compute_node
.
edit
(
reference
=
'TESTC-%s'
%
self
.
generateNewId
())
partition
=
compute_node
.
newContent
(
portal_type
=
'Compute Partition'
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
partition
,
'busy'
)
self
.
assertSecurityGroup
(
partition
,
[
self
.
user_id
],
True
)
software_instance
.
edit
(
aggregate
=
partition
.
getRelativeUrl
())
self
.
tic
()
self
.
assertSecurityGroup
(
software_instance
,
[
self
.
user_id
,
'G-COMPANY'
,
compute_node
.
getUserId
(),
instance_tree
.
getReference
()],
False
)
self
.
assertSecurityGroup
(
partition
,
[
self
.
user_id
,
instance_tree
.
getReference
()],
True
)
self
.
assertSecurityGroup
(
certificate_login
,
[
self
.
user_id
,
compute_node
.
getUserId
(),
software_instance
.
getUserId
()],
False
)
def
test_SlaveInstance_setSpecialise
(
self
):
slave_instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Slave Instance'
)
self
.
assertSecurityGroup
(
slave_instance
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
instance_tree
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
'TESTHS-%s'
%
self
.
generateNewId
())
slave_instance
.
edit
(
specialise
=
instance_tree
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
slave_instance
,
[
self
.
user_id
,
'G-COMPANY'
,
instance_tree
.
getReference
()],
False
)
def
test_SlaveInstance_setAggregate
(
self
):
instance_tree
=
self
.
portal
.
instance_tree_module
.
newContent
(
portal_type
=
'Instance Tree'
,
reference
=
'TESTHS-%s'
%
self
.
generateNewId
())
software_instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Software Instance'
,
reference
=
'TESTSO-%s'
%
self
.
generateNewId
(),
specialise
=
instance_tree
.
getRelativeUrl
())
software_instance
.
validate
()
slave_instance
=
self
.
portal
.
software_instance_module
.
newContent
(
portal_type
=
'Slave Instance'
,
specialise
=
instance_tree
.
getRelativeUrl
())
self
.
assertSecurityGroup
(
slave_instance
,
[
self
.
user_id
,
'G-COMPANY'
,
instance_tree
.
getReference
()],
False
)
compute_node
=
self
.
portal
.
compute_node_module
.
template_compute_node
\
.
Base_createCloneDocument
(
batch_mode
=
1
)
compute_node
.
edit
(
reference
=
'TESTC-%s'
%
self
.
generateNewId
())
partition
=
compute_node
.
newContent
(
portal_type
=
'Compute Partition'
)
software_instance
.
edit
(
aggregate
=
partition
.
getRelativeUrl
())
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
partition
,
'busy'
)
self
.
tic
()
slave_instance
.
edit
(
aggregate
=
partition
.
getRelativeUrl
())
self
.
assertSecurityGroup
(
slave_instance
,
[
self
.
user_id
,
'G-COMPANY'
,
software_instance
.
getUserId
(),
compute_node
.
getUserId
(),
instance_tree
.
getReference
()],
False
)
def
test_PaymentTransaction_setDestinationSection
(
self
):
self
.
_makePerson
()
payment_transaction
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Payment Transaction'
)
self
.
assertSecurityGroup
(
payment_transaction
,
[
self
.
user_id
,
'G-COMPANY'
,
'R-SHADOW-PERSON'
],
False
)
payment_transaction
.
edit
(
destination_section
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
payment_transaction
,
[
self
.
user_id
,
'G-COMPANY'
,
'SHADOW-%s'
%
self
.
person_user
.
getUserId
(),
self
.
person_user
.
getUserId
()],
False
)
def
test_PayzenEvent_setDestinationSection
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
system_event_module
.
newContent
(
portal_type
=
'Payzen Event'
)
self
.
assertSecurityGroup
(
event
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
event
.
edit
(
destination_section
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
self
.
user_id
,
'G-COMPANY'
,
'SHADOW-%s'
%
self
.
person_user
.
getUserId
()],
False
)
def
test_WechatEvent_setDestinationSection
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
system_event_module
.
newContent
(
portal_type
=
'Payzen Event'
)
self
.
assertSecurityGroup
(
event
,
[
self
.
user_id
,
'G-COMPANY'
],
False
)
event
.
edit
(
destination_section
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
self
.
user_id
,
'G-COMPANY'
,
'SHADOW-%s'
%
self
.
person_user
.
getUserId
()],
False
)
def
test_IntegrationSite_reindexObject
(
self
):
integration_site
=
self
.
portal
.
portal_integrations
.
newContent
(
...
...
@@ -379,285 +109,7 @@ class TestSlapOSLocalPermissionSlapOSInteractionWorkflow(
self
.
assertEqual
(
comment
,
integration_site
.
workflow_history
[
'edit_workflow'
][
-
1
][
'comment'
])
def
test_SaleInvoiceTransaction_setDestinationSection
(
self
):
self
.
_makePerson
()
sale_invoice_transaction
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
)
self
.
assertSecurityGroup
(
sale_invoice_transaction
,
[
self
.
user_id
,
'G-COMPANY'
,
'R-SHADOW-PERSON'
],
False
)
sale_invoice_transaction
.
edit
(
destination_section
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
sale_invoice_transaction
,
[
self
.
user_id
,
'G-COMPANY'
,
self
.
person_user
.
getUserId
(),
'R-SHADOW-PERSON'
],
False
)
def
test_SupportRequest_setDestinationDecision
(
self
):
self
.
_makePerson
()
support_request
=
self
.
portal
.
support_request_module
.
newContent
(
portal_type
=
'Support Request'
)
self
.
assertSecurityGroup
(
support_request
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
support_request
.
edit
(
destination_decision
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
support_request
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_RegularisationRequest_setDestinationDecision
(
self
):
self
.
_makePerson
()
regularisation_request
=
self
.
portal
.
regularisation_request_module
.
newContent
(
portal_type
=
'Regularisation Request'
)
self
.
assertSecurityGroup
(
regularisation_request
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
regularisation_request
.
edit
(
destination_decision
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
regularisation_request
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Acknowledgement_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Acknowledgement'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Acknowledgement_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Acknowledgement'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_FaxMessage_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Fax Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_FaxMessage_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Fax Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Letter_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Letter'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Letter_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Letter'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_MailMessage_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Mail Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_MailMessage_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Mail Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Note_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Note'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Note_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Note'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_PhoneCall_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Phone Call'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_PhoneCall_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Phone Call'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_ShortMessage_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Short Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_ShortMessage_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Short Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_SiteMessage_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Site Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_SiteMessage_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Site Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Visit_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Visit'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_Visit_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Visit'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_WebMessage_setDestination
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Web Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
destination
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_WebMessage_setSource
(
self
):
self
.
_makePerson
()
event
=
self
.
portal
.
event_module
.
newContent
(
portal_type
=
'Web Message'
)
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
event
.
edit
(
source
=
self
.
person_user
.
getRelativeUrl
())
self
.
commit
()
self
.
assertSecurityGroup
(
event
,
[
'G-COMPANY'
,
self
.
user_id
,
self
.
person_user_id
],
False
)
def
test_SalePackingList_setSpecialise
(
self
):
self
.
_makePerson
()
...
...
@@ -892,4 +344,4 @@ class TestSlapOSLocalPermissionSlapOSInteractionWorkflow(
project
.
getReference
()],
False
)
self
.
assertSecurityGroup
(
upgrade_decision
,
[
self
.
user_id
,
'G-COMPANY'
,
project
.
getReference
()],
False
)
\ No newline at end of file
project
.
getReference
()],
False
)
master/bt5/slapos_erp5/WorkflowTemplateItem/portal_workflow/local_permission_slapos_interaction_workflow/interaction_ComputeNode_edit.xml
View file @
71e0cb1b
...
...
@@ -35,6 +35,7 @@
<string>
Compute Node
</string>
<string>
Instance Node
</string>
<string>
Remote Node
</string>
<string>
Computer Model
</string>
</tuple>
</value>
</item>
...
...
@@ -54,10 +55,6 @@
<tuple>
<string>
_setUserId.*
</string>
<string>
_setFollowUp.*
</string>
<string>
_setAllocationScope.*
</string>
<string>
_setDestinationSection.*
</string>
<string>
validate
</string>
<string>
invalidate
</string>
</tuple>
</value>
</item>
...
...
master/bt5/slapos_erp5/WorkflowTemplateItem/portal_workflow/local_permission_slapos_interaction_workflow/interaction_SaleInvoiceTransaction_edit.xml
View file @
71e0cb1b
...
...
@@ -33,6 +33,9 @@
<value>
<tuple>
<string>
Sale Invoice Transaction
</string>
<string>
Accounting Transaction
</string>
<string>
Balance Transaction
</string>
<string>
Purchase Invoice Transaction
</string>
</tuple>
</value>
</item>
...
...
@@ -51,6 +54,7 @@
<value>
<tuple>
<string>
_setDestinationSection.*
</string>
<string>
_setLedger.*
</string>
</tuple>
</value>
</item>
...
...
master/bt5/slapos_erp5/WorkflowTemplateItem/portal_workflow/local_permission_slapos_interaction_workflow/interaction_SupportRequest_edit.xml
View file @
71e0cb1b
...
...
@@ -33,6 +33,8 @@
<value>
<tuple>
<string>
Support Request
</string>
<string>
Upgrade Decision
</string>
<string>
Regularisation Request
</string>
</tuple>
</value>
</item>
...
...
master/bt5/slapos_erp5/bt/template_portal_type_workflow_chain_list
View file @
71e0cb1b
Accounting Transaction | local_permission_slapos_interaction_workflow
Acknowledgement | local_permission_slapos_interaction_workflow
Allocation Supply | local_permission_slapos_interaction_workflow
Balance Transaction | local_permission_slapos_interaction_workflow
Cloud Contract | local_permission_slapos_interaction_workflow
Compute Node | local_permission_slapos_interaction_workflow
Compute Node | slapos_erp5_interaction_workflow
...
...
@@ -26,9 +28,11 @@ Payment Transaction | local_permission_slapos_interaction_workflow
Payzen Event | local_permission_slapos_interaction_workflow
Person | local_permission_slapos_interaction_workflow
Project | local_permission_slapos_interaction_workflow
Purchase Invoice Transaction | local_permission_slapos_interaction_workflow
Purchase Packing List Cell | -immobilisation_movement_interaction_workflow
Purchase Packing List Line | -immobilisation_movement_interaction_workflow
Purchase Packing List | -immobilisation_movement_interaction_workflow
Regularisation Request | local_permission_slapos_interaction_workflow
Remote Node | local_permission_slapos_interaction_workflow
Restricted Access Token | local_permission_slapos_interaction_workflow
Sale Invoice Transaction | local_permission_slapos_interaction_workflow
...
...
@@ -42,5 +46,6 @@ Software Installation | local_permission_slapos_interaction_workflow
Software Instance | local_permission_slapos_interaction_workflow
Software Product | local_permission_slapos_interaction_workflow
Support Request | local_permission_slapos_interaction_workflow
Upgrade Decision | local_permission_slapos_interaction_workflow
Web Message | local_permission_slapos_interaction_workflow
Wechat Event | local_permission_slapos_interaction_workflow
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment