diff options
| author | jbm-odoo <jbm@odoo.com> | 2020-01-17 07:51:56 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2020-02-28 08:58:43 +0000 |
| commit | 49d64a8fb1fd79a6e53c3768183f6359d9bee6e4 (patch) | |
| tree | 1dd92636aeb17c7234bff9dfb1cee9ab37db09ac /addons/website_forum/security | |
| parent | ee519c222f0d1aec3f1b4082bbd76d13dedd07b2 (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.xml | 74 |
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']), + '&', + ('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']), '&', ('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']), '&', ('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> |
