report ok, auf book und line

berechtigungen optimiert
This commit is contained in:
Frederik Jaeckel 2022-08-17 17:16:23 +02:00
parent 70038eb15e
commit ab43044f64
21 changed files with 1339 additions and 115 deletions

331
book.xml
View file

@ -44,21 +44,21 @@ full copyright notices and license terms. -->
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<!-- admin: read/write -->
<record model="ir.model.access" id="access_book-group_admin">
<!-- group_cashbook_admin: read/write -->
<record model="ir.model.access" id="access_book-group_cashbook_admin">
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
<field name="group" ref="res.group_admin"/>
<field name="group" ref="group_cashbook_admin"/>
<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>
<!-- cashbook: read -->
<!-- cashbook: read/write, no: create/delete -->
<record model="ir.model.access" id="access_book-group_cashbook">
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
@ -78,15 +78,37 @@ full copyright notices and license terms. -->
<field name="domain" eval="[]" pyson="1"/>
<field name="rule_group" ref="rg_book_write_adm"/>
</record>
<record model="ir.rule.group-res.group" id="rg_book_write_adm-group_admin">
<record model="ir.rule.group-res.group" id="rg_book_write_adm-group_cashbook_admin">
<field name="rule_group" ref="rg_book_write_adm"/>
<field name="group" ref="res.group_admin"/>
<field name="group" ref="group_cashbook_admin"/>
</record>
<!-- permission by rule - read: owner, reviewer, observer -->
<record model="ir.rule.group" id="rg_book_read">
<!-- permission by rule - read/write: owner -->
<record model="ir.rule.group" id="rg_book_rw_owner">
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
<field name="name">Owners, observers and reviewers: Cashbook read</field>
<field name="name">Owners: Cashbook 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="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.rule" id="rg_book_rw_owner-1">
<field name="domain" eval="[
('owner.id', '=', Eval('user', {}).get('id', -1)),
]" pyson="1"/>
<field name="rule_group" ref="rg_book_rw_owner"/>
</record>
<record model="ir.rule.group-res.group" id="rg_book_rw_owner-group_cashbook">
<field name="rule_group" ref="rg_book_rw_owner"/>
<field name="group" ref="group_cashbook"/>
</record>
<!-- permission by rule - read: reviewer, observer -->
<record model="ir.rule.group" id="rg_book_read_nonowner">
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
<field name="name">Observers and Reviewers: Cashbook read</field>
<field name="global_p" eval="False"/>
<field name="default_p" eval="False"/>
<field name="perm_read" eval="True"/>
@ -94,16 +116,15 @@ full copyright notices and license terms. -->
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.rule" id="rg_book_read-1">
<record model="ir.rule" id="rg_book_read_nonowner-1">
<field name="domain" eval="['OR',
('owner.id', '=', Eval('user', {}).get('id', -1)),
('observer.id', 'in', Eval('user', {}).get('groups', [])),
('reviewer.id', 'in', Eval('user', {}).get('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_book_read"/>
<field name="rule_group" ref="rg_book_read_nonowner"/>
</record>
<record model="ir.rule.group-res.group" id="rg_book_read-group_cashbook">
<field name="rule_group" ref="rg_book_read"/>
<record model="ir.rule.group-res.group" id="rg_book_read_nonowner-group_cashbook">
<field name="rule_group" ref="rg_book_read_nonowner"/>
<field name="group" ref="group_cashbook"/>
</record>
@ -127,9 +148,9 @@ full copyright notices and license terms. -->
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
</record>
<record model="ir.model.button-res.group"
id="book_wfopen_button-group_admin">
id="book_wfopen_button-group_cashbook_admin">
<field name="button" ref="book_wfopen_button"/>
<field name="group" ref="res.group_admin"/>
<field name="group" ref="group_cashbook_admin"/>
</record>
<!-- button - close -->
@ -139,9 +160,9 @@ full copyright notices and license terms. -->
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
</record>
<record model="ir.model.button-res.group"
id="book_wfclosed_button-group_admin">
id="book_wfclosed_button-group_cashbook_admin">
<field name="button" ref="book_wfclosed_button"/>
<field name="group" ref="res.group_admin"/>
<field name="group" ref="group_cashbook_admin"/>
</record>
<!-- button - done -->
@ -151,9 +172,9 @@ full copyright notices and license terms. -->
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
</record>
<record model="ir.model.button-res.group"
id="book_wfarchive_button-group_admin">
id="book_wfarchive_button-group_cashbook_admin">
<field name="button" ref="book_wfarchive_button"/>
<field name="group" ref="res.group_admin"/>
<field name="group" ref="group_cashbook_admin"/>
</record>
<!-- sequence-type -->
@ -161,9 +182,273 @@ full copyright notices and license terms. -->
<field name="name">Cashbook Line</field>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_cashbook_line-group_admin">
id="sequence_type_cashbook_line-group_cashbook_admin">
<field name="sequence_type" ref="sequence_type_cashbook_line"/>
<field name="group" ref="res.group_admin"/>
<field name="group" ref="group_cashbook_admin"/>
</record>
<!-- field-access - anon -->
<record model="ir.model.field.access" id="fa_book-company-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'company')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-name-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'name')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-btype-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'btype')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-owner-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'owner')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-reviewer-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reviewer')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-observer-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'observer')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-lines-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'lines')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-reconciliations-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-number_sequ-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_sequ')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-number_atcheck-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_atcheck')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-start_balance-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'start_balance')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-currency-anon">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'currency')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<!-- field-access - group_cashbook_admin -->
<record model="ir.model.field.access" id="fa_book-company-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'company')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-name-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'name')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-btype-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'btype')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-owner-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'owner')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-reviewer-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reviewer')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-observer-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'observer')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-lines-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'lines')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-number_sequ-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_sequ')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-number_atcheck-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_atcheck')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-start_balance-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'start_balance')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="fa_book-currency-group_cashbook_admin">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'currency')]"/>
<field name="group" ref="group_cashbook_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<!-- field-access - group_cashbook -->
<record model="ir.model.field.access" id="fa_book-company-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'company')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-name-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'name')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-btype-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'btype')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-owner-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'owner')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-reviewer-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reviewer')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-observer-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'observer')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-lines-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'lines')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-number_sequ-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_sequ')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-number_atcheck-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_atcheck')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-start_balance-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'start_balance')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="fa_book-currency-group_cashbook">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'currency')]"/>
<field name="group" ref="group_cashbook"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<!-- field-access - group_cashbook_checkline (user must be in group_cashbook too) -->
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook_checkline">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
<field name="group" ref="group_cashbook_checkline"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<!-- field-access - group_cashbook_doneline (user must be in group_cashbook too) -->
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook_doneline">
<field name="field"
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
<field name="group" ref="group_cashbook_doneline"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
</data>