book/line: berechtigungen für owner, beobachter, bearbeiter + tests

This commit is contained in:
Frederik Jaeckel 2022-08-08 17:31:16 +02:00
parent 654e9d2ee7
commit b9bb433c39
9 changed files with 584 additions and 3 deletions

View file

@ -72,7 +72,7 @@ full copyright notices and license terms. -->
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<!-- cashbook: read -->
<!-- cashbook: read/write -->
<record model="ir.model.access" id="access_line-group_cashbook">
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
<field name="group" ref="group_cashbook"/>
@ -82,6 +82,72 @@ full copyright notices and license terms. -->
<field name="perm_delete" eval="True"/>
</record>
<!-- permission by rule - admin -->
<record model="ir.rule.group" id="rg_line_write_adm">
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
<field name="name">Administrators: Cashbook line read/write</field>
<field name="global_p" eval="False"/>
<field name="default_p" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.rule" id="rg_line_write_adm-1">
<field name="domain" eval="[]" pyson="1"/>
<field name="rule_group" ref="rg_line_write_adm"/>
</record>
<record model="ir.rule.group-res.group" id="rg_line_write_adm-group_admin">
<field name="rule_group" ref="rg_line_write_adm"/>
<field name="group" ref="res.group_admin"/>
</record>
<!-- permission by rule - read/write: owner, reviewer -->
<record model="ir.rule.group" id="rg_line_write">
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
<field name="name">Owners and reviewers: Cashbook line write</field>
<field name="global_p" eval="False"/>
<field name="default_p" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.rule" id="rg_line_write-1">
<field name="domain" eval="['OR',
('cashbook.owner.id', '=', Eval('user', {}).get('id', -1)),
('cashbook.reviewer.id', 'in', Eval('user', {}).get('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_line_write"/>
</record>
<record model="ir.rule.group-res.group" id="rg_line_write-group_cashbook">
<field name="rule_group" ref="rg_line_write"/>
<field name="group" ref="group_cashbook"/>
</record>
<!-- permission by rule - read: observer -->
<record model="ir.rule.group" id="rg_line_read">
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
<field name="name">Observer: Cashbook line read</field>
<field name="global_p" eval="False"/>
<field name="default_p" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.rule" id="rg_line_read-1">
<field name="domain" eval="[
('cashbook.observer.id', 'in', Eval('user', {}).get('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_line_read"/>
</record>
<record model="ir.rule.group-res.group" id="rg_line_read-group_cashbook">
<field name="rule_group" ref="rg_line_read"/>
<field name="group" ref="group_cashbook"/>
</record>
<!-- button - edit -->
<record model="ir.model.button" id="line_wfedit_button">
<field name="name">wfedit</field>