summaryrefslogtreecommitdiff
path: root/addons/website_slides/security
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_slides/security
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_slides/security')
-rw-r--r--addons/website_slides/security/ir.model.access.csv29
-rw-r--r--addons/website_slides/security/website_slides_security.xml191
2 files changed, 220 insertions, 0 deletions
diff --git a/addons/website_slides/security/ir.model.access.csv b/addons/website_slides/security/ir.model.access.csv
new file mode 100644
index 00000000..355ebc5a
--- /dev/null
+++ b/addons/website_slides/security/ir.model.access.csv
@@ -0,0 +1,29 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_slide_slide_all,slide.slide.all,model_slide_slide,,1,0,0,0
+access_slide_slide_officer,slide.slide.officer,model_slide_slide,website_slides.group_website_slides_officer,1,1,1,0
+access_slide_slide_manager,slide.slide.manager,model_slide_slide,website_slides.group_website_slides_manager,1,1,1,1
+access_slide_slide_partner_all,slide.slide.partner.all,model_slide_slide_partner,,0,0,0,0
+access_slide_slide_partner_system,slide.slide.partner.system,model_slide_slide_partner,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_question_all,slide.question.all,model_slide_question,,1,0,0,0
+access_slide_question_officer,slide.question.officer,model_slide_question,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_answer_all,slide.answer.all,model_slide_answer,,0,0,0,0
+access_slide_answer_officer,slide.answer.officer,model_slide_answer,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_tag_all,slide.tag.all,model_slide_tag,,1,0,0,0
+access_slide_tag_officer,slide.tag.officer,model_slide_tag,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_channel_tag_all,slide.channel.tag.all,model_slide_channel_tag,,1,0,0,0
+access_slide_channel_tag_user,slide.channel.tag.user,model_slide_channel_tag,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_channel_tag_group_all,slide.channel.tag.group.all,model_slide_channel_tag_group,,1,0,0,0
+access_slide_channel_tag_group_user,slide.channel.tag.group.user,model_slide_channel_tag_group,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_channel_all,slide.channel.all,model_slide_channel,,1,0,0,0
+access_slide_channel_officer,slide.channel.officer,model_slide_channel,website_slides.group_website_slides_officer,1,1,1,0
+access_slide_channel_manager,slide.channel.manager,model_slide_channel,website_slides.group_website_slides_manager,1,1,1,1
+access_slide_channel_partners_all,slide.channel.users.all,model_slide_channel_partner,,0,0,0,0
+access_slide_channel_partners_system,slide.channel.users.system,model_slide_channel_partner,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_embed_all,slide.embed.all,model_slide_embed,,1,0,0,0
+access_slide_embed_user,slide.embed.user,model_slide_embed,base.group_user,1,1,1,1
+access_slide_slide_link_all,slide.slide.link.all,model_slide_slide_link,,1,0,0,0
+access_slide_slide_link_officer,slide.slide.link.officer,model_slide_slide_link,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_slide_resource_all,slide.slide.resource.all,model_slide_slide_resource,,1,0,0,0
+access_slide_slide_resource_public,slide.slide.resource.public,model_slide_slide_resource,base.group_public,0,0,0,0
+access_slide_slide_resource_publisher,slide.slide.resource.publisher,model_slide_slide_resource,website_slides.group_website_slides_officer,1,1,1,1
+access_slide_channel_invite,access.slide.channel.invite,model_slide_channel_invite,base.group_user,1,1,1,0
diff --git a/addons/website_slides/security/website_slides_security.xml b/addons/website_slides/security/website_slides_security.xml
new file mode 100644
index 00000000..ab800865
--- /dev/null
+++ b/addons/website_slides/security/website_slides_security.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record model="ir.module.category" id="base.module_category_website_elearning">
+ <field name="sequence">21</field>
+ </record>
+
+ <record id="group_website_slides_officer" model="res.groups">
+ <field name="name">Officer</field>
+ <field name="category_id" ref="base.module_category_website_elearning"/>
+ <field name="implied_ids" eval="[(4, ref('website.group_website_publisher'))]"/>
+ </record>
+
+ <record id="group_website_slides_manager" model="res.groups">
+ <field name="name">Manager</field>
+ <field name="category_id" ref="base.module_category_website_elearning"/>
+ <field name="implied_ids" eval="[(4, ref('group_website_slides_officer'))]"/>
+ </record>
+
+ <record id="base.default_user" model="res.users">
+ <field name="groups_id" eval="[(4,ref('group_website_slides_manager'))]"/>
+ </record>
+
+ <record id="base.group_system" model="res.groups">
+ <field name="implied_ids" eval="[(4, ref('group_website_slides_manager'))]"/>
+ </record>
+
+ <data noupdate="1">
+ <!-- CHANNEL -->
+ <record id="rule_slide_channel_global" model="ir.rule">
+ <field name="name">Channel: always visible (sub rules exist)</field>
+ <field name="model_id" ref="model_slide_channel"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ </record>
+
+ <record id="rule_slide_channel_not_website" model="ir.rule">
+ <field name="name">Channel: public/portal/user: restricted to published and (public or member only)</field>
+ <field name="model_id" ref="model_slide_channel"/>
+ <field name="groups" eval="[(4, ref('base.group_public')), (4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
+ <field name="domain_force">['&amp;', ('website_published', '=', True), '|', ('visibility', '=', 'public'), ('partner_ids', '=', user.partner_id.id)]</field>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="0"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="0"/>
+ </record>
+
+ <record id="rule_slide_channel_officer_r" model="ir.rule">
+ <field name="name">Channel: officer: read all</field>
+ <field name="model_id" ref="model_slide_channel"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="0"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="0"/>
+ </record>
+ <record id="rule_slide_channel_officer_cw" model="ir.rule">
+ <field name="name">Channel: officer: create/write own only</field>
+ <field name="model_id" ref="model_slide_channel"/>
+ <field name="domain_force">[('user_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="0"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <record id="rule_slide_channel_manager" model="ir.rule">
+ <field name="name">Channel: manager: crud all</field>
+ <field name="model_id" ref="model_slide_channel"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
+ <field name="perm_unlink" eval="1"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <!-- SLIDE -->
+ <record id="rule_slide_slide_global" model="ir.rule">
+ <field name="name">Slide: always visible (sub rules exist)</field>
+ <field name="model_id" ref="model_slide_slide"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ </record>
+
+ <record id="rule_slide_slide_not_website" model="ir.rule">
+ <field name="name">Slide: public/portal/user: restricted to published or uploaded by user, and either channel member or public channel &amp; (category or previewable)</field>
+ <field name="model_id" ref="model_slide_slide"/>
+ <field name="groups" eval="[(4, ref('base.group_public')), (4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
+ <field name="domain_force">['&amp;',
+ '|',
+ '&amp;', ('channel_id.visibility', '=', 'public'), '|', ('is_category','=', True), ('is_preview', '=', True),
+ ('channel_id.partner_ids', '=', user.partner_id.id),
+ '&amp;', ('channel_id.website_published', '=', True), '|', ('user_id', '=', user.id), ('website_published', '=', True)]</field>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="0"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="0"/>
+ </record>
+
+ <record id="rule_slide_slide_officer_r" model="ir.rule">
+ <field name="name">Slide: officer: read all</field>
+ <field name="model_id" ref="model_slide_slide"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="0"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="0"/>
+ </record>
+
+ <record id="rule_slide_slide_officer_cw" model="ir.rule">
+ <field name="name">Slide: officer: create/write own only</field>
+ <field name="model_id" ref="model_slide_slide"/>
+ <field name="domain_force">[('channel_id.user_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
+ <field name="perm_unlink" eval="0"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="0"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <record id="rule_slide_slide_manager" model="ir.rule">
+ <field name="name">Slide: manager: crud all</field>
+ <field name="model_id" ref="model_slide_slide"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
+ <field name="perm_unlink" eval="1"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <!-- CHANNEL PARTNER -->
+ <record id="rule_slide_channel_partner_officer" model="ir.rule">
+ <field name="name">Channel Partner: officer: create/write/unlink own only</field>
+ <field name="model_id" ref="model_slide_channel_partner"/>
+ <field name="domain_force">[('channel_id.user_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
+ <field name="perm_unlink" eval="1"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="0"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <record id="rule_slide_channel_partner_manager" model="ir.rule">
+ <field name="name">Channel Partner: manager: crud all</field>
+ <field name="model_id" ref="model_slide_channel_partner"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
+ <field name="perm_unlink" eval="1"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <!-- SLIDE PARTNER -->
+ <record id="rule_slide_slide_partner_officer" model="ir.rule">
+ <field name="name">Slide Partner: officer: create/write/unlink own only</field>
+ <field name="model_id" ref="model_slide_slide_partner"/>
+ <field name="domain_force">[('channel_id.user_id', '=', user.id)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
+ <field name="perm_unlink" eval="1"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="0"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <record id="rule_slide_slide_partner_manager" model="ir.rule">
+ <field name="name">Slide Partner: manager: crud all</field>
+ <field name="model_id" ref="model_slide_slide_partner"/>
+ <field name="domain_force">[(1, '=', 1)]</field>
+ <field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
+ <field name="perm_unlink" eval="1"/>
+ <field name="perm_write" eval="1"/>
+ <field name="perm_read" eval="1"/>
+ <field name="perm_create" eval="1"/>
+ </record>
+
+ <!--SLIDE RESOURCE-->
+ <record id="rule_slide_slide_resource_downloadable" model="ir.rule">
+ <field name="name">Resource: restricted to channel members and channel responsible</field>
+ <field name="model_id" ref="model_slide_slide_resource"/>
+ <field name="domain_force">[('slide_id.channel_id.partner_ids', '=', user.partner_id.id)]</field>
+ <field name="groups" eval="[(4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
+ <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>
+ </data>
+</odoo>