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
0
Merge Requests
0
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
Titouan Soulard
slapos.core
Commits
26747043
Commit
26747043
authored
Jan 12, 2023
by
Romain Courteaud
🐙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_erp5: fix Sale Invoice Transaction security
parent
6c8e82b4
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
8 deletions
+29
-8
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Sale%20Invoice%20Transaction.xml
...talTypeRolesTemplateItem/Sale%20Invoice%20Transaction.xml
+10
-3
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5GroupRoleSecurity.py
...l_components/test.erp5.testSlapOSERP5GroupRoleSecurity.py
+19
-5
No files found.
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Sale%20Invoice%20Transaction.xml
View file @
26747043
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<property
id=
'title'
>
ReadOnly for Accountant
</property>
<property
id=
'title'
>
ReadOnly for Accountant
</property>
<property
id=
'condition'
>
python: context.getLedger("") == "automated"
</property>
<property
id=
'condition'
>
python: context.getLedger("") == "automated"
</property>
<multi_property
id=
'categories'
>
local_role_group/function
</multi_property>
<multi_property
id=
'categories'
>
local_role_group/function
</multi_property>
<multi_property
id=
'category'
>
function/accounting
</multi_property>
<multi_property
id=
'category'
>
function/accounting
*
</multi_property>
<multi_property
id=
'base_category'
>
function
</multi_property>
<multi_property
id=
'base_category'
>
function
</multi_property>
</role>
</role>
<role
id=
'Auditor'
>
<role
id=
'Auditor'
>
...
@@ -20,11 +20,18 @@
...
@@ -20,11 +20,18 @@
<multi_property
id=
'categories'
>
local_role_group/user
</multi_property>
<multi_property
id=
'categories'
>
local_role_group/user
</multi_property>
<multi_property
id=
'base_category'
>
destination_section
</multi_property>
<multi_property
id=
'base_category'
>
destination_section
</multi_property>
</role>
</role>
<role
id=
'Assignee'
>
<property
id=
'title'
>
Writable for Accountant Agent
</property>
<property
id=
'condition'
>
python: context.getLedger("") != "automated"
</property>
<multi_property
id=
'categories'
>
local_role_group/function
</multi_property>
<multi_property
id=
'category'
>
function/accounting/agent
</multi_property>
<multi_property
id=
'base_category'
>
function
</multi_property>
</role>
<role
id=
'Assignor'
>
<role
id=
'Assignor'
>
<property
id=
'title'
>
Writable for Accountant
</property>
<property
id=
'title'
>
Writable for Accountant
Manager
</property>
<property
id=
'condition'
>
python: context.getLedger("") != "automated"
</property>
<property
id=
'condition'
>
python: context.getLedger("") != "automated"
</property>
<multi_property
id=
'categories'
>
local_role_group/function
</multi_property>
<multi_property
id=
'categories'
>
local_role_group/function
</multi_property>
<multi_property
id=
'category'
>
function/accounting
</multi_property>
<multi_property
id=
'category'
>
function/accounting
/manager
</multi_property>
<multi_property
id=
'base_category'
>
function
</multi_property>
<multi_property
id=
'base_category'
>
function
</multi_property>
</role>
</role>
</type_roles>
</type_roles>
\ No newline at end of file
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5GroupRoleSecurity.py
View file @
26747043
...
@@ -1413,13 +1413,25 @@ class TestPurchaseInvoiceTransaction(TestSlapOSGroupRoleSecurityMixin):
...
@@ -1413,13 +1413,25 @@ class TestPurchaseInvoiceTransaction(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestSaleInvoiceTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
class
TestSaleInvoiceTransaction
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_
GroupCompany
(
self
):
def
test_
AccountingFunction_LedgerNotAutomated
(
self
):
product
=
self
.
portal
.
accounting_module
.
newContent
(
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
)
portal_type
=
'Sale Invoice Transaction'
)
product
.
updateLocalRolesOnSecurityGroups
()
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
,
'R-SHADOW-PERSON'
],
False
)
[
'F-ACCMAN'
,
'F-ACCAGT'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
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
=
'Sale Invoice Transaction'
)
product
.
edit
(
ledger
=
'automated'
)
product
.
updateLocalRolesOnSecurityGroups
()
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'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
def
test_User
(
self
):
def
test_User
(
self
):
...
@@ -1429,14 +1441,16 @@ class TestSaleInvoiceTransaction(TestSlapOSGroupRoleSecurityMixin):
...
@@ -1429,14 +1441,16 @@ class TestSaleInvoiceTransaction(TestSlapOSGroupRoleSecurityMixin):
product
=
self
.
portal
.
accounting_module
.
newContent
(
product
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
)
portal_type
=
'Sale Invoice Transaction'
)
product
.
edit
(
product
.
edit
(
ledger
=
'automated'
,
destination_section_value
=
person
,
destination_section_value
=
person
,
)
)
product
.
updateLocalRolesOnSecurityGroups
()
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
self
.
assertSecurityGroup
(
product
,
[
'
G-COMPANY'
,
self
.
user_id
,
person
.
getUserId
(),
[
'
F-ACCOUNTING*'
,
self
.
user_id
,
person
.
getUserId
(),
'R-SHADOW-PERSON'
],
False
)
'R-SHADOW-PERSON'
],
False
)
self
.
assertRoles
(
product
,
'
G-COMPANY'
,
[
'Assign
or'
])
self
.
assertRoles
(
product
,
'
F-ACCOUNTING*'
,
[
'Audit
or'
])
self
.
assertRoles
(
product
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
product
,
person
.
getUserId
(),
[
'Auditor'
])
self
.
assertRoles
(
product
,
'R-SHADOW-PERSON'
,
[
'Assignee'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
class
TestServiceModule
(
TestSlapOSGroupRoleSecurityMixin
):
class
TestServiceModule
(
TestSlapOSGroupRoleSecurityMixin
):
...
...
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