summaryrefslogtreecommitdiff
path: root/addons/website_forum/security
diff options
context:
space:
mode:
authorjbm-odoo <jbm@odoo.com>2020-01-17 07:51:56 +0000
committerYannick Tivisse <yti@odoo.com>2020-02-28 08:58:43 +0000
commit49d64a8fb1fd79a6e53c3768183f6359d9bee6e4 (patch)
tree1dd92636aeb17c7234bff9dfb1cee9ab37db09ac /addons/website_forum/security
parentee519c222f0d1aec3f1b4082bbd76d13dedd07b2 (diff)
[IMP] website_forum: Add privacy
Add privacy on forum: public or private. If private, we must select one group that has access. For forum linked to eLearning course: the privacy of forum is the same as the course. If the course is not yet published, the forum will be invisible (unless we have the group group_website_slides_officer). If a forum linked to a course is unlinked or removed, the forum will become private and his group will be set to group_website_slides_officer. All posts and tags have the same access rules as their linked forum. closes odoo/odoo#43486 Taskid: 2169965 Related: odoo/upgrade#758 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/website_forum/security')
-rw-r--r--addons/website_forum/security/website_forum_security.xml74
1 files changed, 74 insertions, 0 deletions
diff --git a/addons/website_forum/security/website_forum_security.xml b/addons/website_forum/security/website_forum_security.xml
new file mode 100644
index 00000000000..6908c0fb102
--- /dev/null
+++ b/addons/website_forum/security/website_forum_security.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="website_forum_public" model="ir.rule">
+ <field name="name">Website forum: Public user can only access to public forum</field>
+ <field name="model_id" ref="model_forum_forum"/>
+ <field name="domain_force">[('privacy', '=', 'public')]</field>
+ <field name="groups" eval="[(4, ref('base.group_public'))]"/>
+ </record>
+ <record id="website_forum_connected" model="ir.rule">
+ <field name="name">Website forum: User can only access to public (or authorized) forum</field>
+ <field name="model_id" ref="model_forum_forum"/>
+ <field name="domain_force">[
+ '|',
+ ('privacy', 'in', ['public', 'connected']),
+ '&amp;',
+ ('privacy', '=', 'private'),
+ ('authorized_group_id', 'in', user.groups_id.ids)]</field>
+ <field name="groups" eval="[(4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
+ </record>
+ <record id="website_forum_create_website_designer" model="ir.rule">
+ <field name="name">Website forum: Website designer can create private forum</field>
+ <field name="model_id" ref="model_forum_forum"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('website.group_website_designer'))]"/>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="0"/>
+ <field name="perm_read" eval="0"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+ <record id="website_forum_private" model="ir.rule">
+ <field name="name">Website forum: All access for manager</field>
+ <field name="model_id" ref="model_forum_forum"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('base.group_erp_manager'))]"/>
+ </record>
+
+ <record id="website_forum_public_post" model="ir.rule">
+ <field name="name">Website forum post: Public user can only access to public post</field>
+ <field name="model_id" ref="model_forum_post"/>
+ <field name="domain_force">[('forum_id.privacy', '=', 'public')]</field>
+ <field name="groups" eval="[(4, ref('base.group_public'))]"/>
+ </record>
+ <record id="website_forum_connected_post" model="ir.rule">
+ <field name="name">Website forum post: User can only access to public (or authorized) post</field>
+ <field name="model_id" ref="model_forum_post"/>
+ <field name="domain_force">['|', ('forum_id.privacy', 'in', ['public', 'connected']), '&amp;', ('forum_id.privacy', '=', 'private'), ('forum_id.authorized_group_id', 'in', user.groups_id.ids)]</field>
+ <field name="groups" eval="[(4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
+ </record>
+ <record id="website_forum_private_post" model="ir.rule">
+ <field name="name">Website forum post : All access for manager</field>
+ <field name="model_id" ref="model_forum_post"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('base.group_erp_manager'))]"/>
+ </record>
+
+ <record id="website_forum_public_tag" model="ir.rule">
+ <field name="name">Website forum tag: Public user can only access to tag linked to public forum</field>
+ <field name="model_id" ref="model_forum_tag"/>
+ <field name="domain_force">[('forum_id.privacy', '=', 'public')]</field>
+ <field name="groups" eval="[(4, ref('base.group_public'))]"/>
+ </record>
+ <record id="website_forum_connected_tag" model="ir.rule">
+ <field name="name">Website forum tag: User can only access to tag linked to public (or authorized) forum</field>
+ <field name="model_id" ref="model_forum_tag"/>
+ <field name="domain_force">['|', ('forum_id.privacy', 'in', ['public', 'connected']), '&amp;', ('forum_id.privacy', '=', 'private'), ('forum_id.authorized_group_id', 'in', user.groups_id.ids)]</field>
+ <field name="groups" eval="[(4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
+ </record>
+ <record id="website_forum_private_tag" model="ir.rule">
+ <field name="name">Website forum tag : Manager user can access to all tags</field>
+ <field name="model_id" ref="model_forum_tag"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('base.group_erp_manager'))]"/>
+ </record>
+</odoo>