43 lines
2.3 KiB
XML
43 lines
2.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
|
|
<!-- Record Rule: Standard Users can only see Published Topics -->
|
|
<record id="rule_genius_topic_published_only" model="ir.rule">
|
|
<field name="name">Genius Topic: Published Only for Standard Users</field>
|
|
<field name="model_id" ref="model_genius_topic"/>
|
|
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
|
|
<field name="domain_force">[('state', '=', 'published'), ('active', '=', True)]</field>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
|
|
<!-- Record Rule: Genius Users/Instructors/Admins see everything (handled by existing group rules or lack thereof) -->
|
|
<!-- Odoo's additive nature means if they are in group_genius_user, they might need an explicit rule if global rules restrict them,
|
|
BUT here we are applying a GROUP rule to base.group_user.
|
|
If a Genius User is ALSO a base.group_user (which they are), this rule applies.
|
|
SO we must allow Genius Users to see everything via another rule or make the above rule EXCLUDE them?
|
|
Actually, access rights are additive but Record Rules are:
|
|
- Global rules (no group) are INTERSECTED (AND)
|
|
- Group rules are UNIONED (OR)
|
|
|
|
So if I add a rule for base.group_user, it allows access to published.
|
|
I need another rule for group_genius_user to allow access to ALL (or draft).
|
|
-->
|
|
|
|
<record id="rule_genius_topic_all_for_genius_users" model="ir.rule">
|
|
<field name="name">Genius Topic: All for Genius Users</field>
|
|
<field name="model_id" ref="model_genius_topic"/>
|
|
<field name="groups" eval="[(4, ref('group_genius_user'))]"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field> <!-- Allow everything -->
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
|
|
</data>
|
|
</odoo>
|