From 34ed84d1ea3131f84c8c413b364b1983c6d0bfe2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Laporte?= <stephane.laporte@enercoop.org>
Date: Tue, 27 May 2025 15:25:18 +0200
Subject: [PATCH] [FIX] tableau de repartition droits profil producteur

---
 security/ir.model.access.csv |  3 +++
 security/security_rules.xml  | 41 ++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 4cab550..d4ae337 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -2,3 +2,6 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
 access_acc_operation_portal,acc.operation.portal,oacc.model_acc_operation,base.group_portal,1,0,0,0
 access_acc_counter_period_portal,acc.counter.period.portal,oacc.model_acc_counter_period,base.group_portal,1,0,0,0
 access_acc_actu_portal,acc.actu.portal,oacc_actus.model_acc_actu,base.group_portal,1,0,0,0
+access_acc_counter_portal,acc.counter.portal,oacc.model_acc_counter,base.group_portal,1,0,0,0
+access_acc_enedis_cdc_day_producteur,acc.enedis.cdc.day.producteur,oacc.model_acc_enedis_cdc_day,base.group_portal,1,0,0,0
+access_acc_enedis_cdc_prorata_day_producteur,acc.enedis.cdc.prorata.day.producteur,oacc.model_acc_enedis_cdc_prorata_day,base.group_portal,1,0,0,0
diff --git a/security/security_rules.xml b/security/security_rules.xml
index e2ac0cf..3a314be 100644
--- a/security/security_rules.xml
+++ b/security/security_rules.xml
@@ -2,6 +2,47 @@
 <!-- Copyright 2023 Le Filament
      License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
 <odoo>
+    <!-- tableau de répartition pour les producteurs, si l'utilisateur est producteur de l'opération il peut accèder aux compteurs de soutirage -->
+    <record id="portal_counter_rule" model="ir.rule">
+        <field name="name">Portal: Counter rule</field>
+        <field name="model_id" ref="oacc.model_acc_counter" />
+        <field
+            name="domain_force"
+        >['&amp;', ('type', 'in', ['del', 'del_inj']), ('acc_operation_id.productor_ids', 'in', [user.commercial_partner_id.id])]</field>
+        <field name="groups" eval="[(6, 0, [ref('base.group_portal')])]" />
+        <field name="perm_read" eval="True" />
+    </record>
+    <!-- tableau de répartition pour les producteurs, si l'utilisateur est producteur de l'opération il peut accéder aux courbes de conso -->
+    <record id="portal_cdc_conso_rule" model="ir.rule">
+        <field name="name">Portal: Cdc conso rule</field>
+        <field name="model_id" ref="oacc.model_acc_enedis_cdc_day" />
+        <field
+            name="domain_force"
+        >['&amp;', ('comp_data_type', 'in', ['cons']), ('acc_operation_id.productor_ids', 'in', [user.commercial_partner_id.id])]</field>
+        <field name="groups" eval="[(6, 0, [ref('base.group_portal')])]" />
+        <field name="perm_read" eval="True" />
+    </record>
+    <!-- tableau de répartition pour les producteurs, le producteur peut accéder à ses courbes de prod -->
+    <record id="portal_cdc_prod_rule" model="ir.rule">
+        <field name="name">Portal: Cdc prod rule</field>
+        <field name="model_id" ref="oacc.model_acc_enedis_cdc_day" />
+        <field
+            name="domain_force"
+        >['&amp;', ('comp_data_type', 'in', ['prod']), ('partner_id.id', 'in', [user.commercial_partner_id.id])]</field>
+        <field name="groups" eval="[(6, 0, [ref('base.group_portal')])]" />
+        <field name="perm_read" eval="True" />
+    </record>
+    <!-- tableau de répartition pour les producteurs, un producteur peut accéder aux proratas associés à ses compteurs d'injection -->
+    <record id="portal_cdc_prorata_rule" model="ir.rule">
+        <field name="name">Portal: Cdc prorata rule</field>
+        <field name="model_id" ref="oacc.model_acc_enedis_cdc_prorata_day" />
+        <field
+            name="domain_force"
+        >[('acc_inj_counter_id.partner_id', 'in', [user.commercial_partner_id.id])]</field>
+        <field name="groups" eval="[(6, 0, [ref('base.group_portal')])]" />
+        <field name="perm_read" eval="True" />
+    </record>
+
     <!-- Règles pour les consomateurs/producteurs accès Portail sur les périodes de PRM -->
     <record id="portal_counter_period_rule" model="ir.rule">
         <field name="name">Portal: Counter period rule</field>
-- 
GitLab