Skip to content

Commit

Permalink
[MIG] sales_team_security: Migration to 15.0
Browse files Browse the repository at this point in the history
  • Loading branch information
cesar-tecnativa committed Jun 16, 2022
1 parent eaa4410 commit 2e9bedf
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 17 deletions.
10 changes: 7 additions & 3 deletions sales_team_security/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,20 @@
{
"name": "Sales documents permissions by channels (teams)",
"summary": "New group for seeing only sales channel's documents",
"version": "14.0.2.0.0",
"version": "15.0.1.0.0",
"category": "Sales",
"website": "https:/OCA/sale-workflow",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"installable": True,
"development_status": "Production/Stable",
"maintainers": ["pedrobaeza", "ivantodorovich"],
"depends": ["sales_team"],
"data": ["security/sales_team_security.xml", "views/res_partner_view.xml"],
"depends": ["sales_team", "sale", "crm"],
"data": [
"security/sales_team_security.xml",
"security/sales_team_security_rules.xml",
"views/res_partner_view.xml",
],
"post_init_hook": "post_init_hook",
"uninstall_hook": "uninstall_hook",
}
1 change: 1 addition & 0 deletions sales_team_security/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

* Pedro M. Baeza
* Víctor Martínez
* César A. Sánchez

* `Guadaltech <https://www.guadaltech.es>`__:

Expand Down
4 changes: 3 additions & 1 deletion sales_team_security/security/sales_team_security.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
<field name="name">User: Team Documents Only</field>
<field
name="comment"
>The user will have an access to the documents of the sales teams he/she belongs to.</field>
>The user will have an access to the documents of the sales teams he/she belongs to.
</field>
<field name="category_id" ref="base.module_category_sales_sales" />
<field name="implied_ids" eval="[(4, ref('sales_team.group_sale_salesman'))]" />
</record>
Expand All @@ -14,4 +15,5 @@
<field name="implied_ids" eval="[(6, 0, [ref('group_sale_team_manager')])]" />
</record>


</odoo>
58 changes: 58 additions & 0 deletions sales_team_security/security/sales_team_security_rules.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<odoo noupdate="1">
<record id="sale_order_team_rule" model="ir.rule">
<field name="name">Sales Channel Orders</field>
<field ref="sale.model_sale_order" name="model_id" />
<field
name="domain_force"
>['|', '|', ('user_id', '=', user.id), ('user_id', '=', False), '|', ('team_id', '=',
user.sale_team_id.id), ('team_id', '=', False)]
</field>
<field name="groups" eval="[(4, ref('group_sale_team_manager'))]" />
</record>
<record id="sale_order_report_team_rule" model="ir.rule">
<field name="name">Sales Channel Orders Analysis</field>
<field ref="sale.model_sale_report" name="model_id" />
<field
name="domain_force"
>['|', '|', ('user_id', '=', user.id), ('user_id', '=', False), '|', ('team_id', '=',
user.sale_team_id.id), ('team_id', '=', False)]
</field>
<field name="groups" eval="[(4, ref('group_sale_team_manager'))]" />
</record>
<record id="sale_order_line_team_rule" model="ir.rule">
<field name="name">Sales Channel Order Lines</field>
<field ref="sale.model_sale_order_line" name="model_id" />
<field
name="domain_force"
>['|', '|', ('salesman_id', '=', user.id), ('salesman_id', '=', False), '|',
('order_id.team_id', '=', user.sale_team_id.id), ('order_id.team_id', '=', False)]
</field>
<field name="groups" eval="[(4, ref('group_sale_team_manager'))]" />
</record>
<record id="crm_lead_team_rule" model="ir.rule">
<field name="name">Sales Channel Leads/Opportunities</field>
<field ref="crm.model_crm_lead" name="model_id" />
<field
name="domain_force"
>['|', '|', ('user_id','=',user.id), ('user_id','=',False), '|', ('team_id', '=',
user.sale_team_id.id), ('team_id', '=', False)]
</field>
<field name="groups" eval="[(4, ref('group_sale_team_manager'))]" />
</record>
<record id="crm_activity_report_team" model="ir.rule">
<field name="name">Activities Analysis by Channel</field>
<field ref="crm.model_crm_activity_report" name="model_id" />
<field
name="domain_force"
>['|', '|', ('user_id','=',user.id), ('user_id','=',False), '|', ('team_id', '=',
user.sale_team_id.id), ('team_id', '=', False)]
</field>
<field name="groups" eval="[(4, ref('group_sale_team_manager'))]" />
</record>
<record id="sales_team_team_rule" model="ir.rule">
<field name="name">Own Sales Channels</field>
<field ref="sales_team.model_crm_team" name="model_id" />
<field name="domain_force">[('id', '=', user.sale_team_id.id)]</field>
<field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]" />
</record>
</odoo>
41 changes: 28 additions & 13 deletions sales_team_security/tests/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,25 @@ class TestCommon(common.SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.team = cls.env.ref("sales_team.team_sales_department")
cls.team2 = cls.env.ref("sales_team.crm_team_1")

cls.team = cls.env["crm.team"].create({"name": "Test channel"})
cls.team2 = cls.env["crm.team"].create({"name": "Test channel 2"})

cls.user = cls.env["res.users"].create(
{
"login": "sales_team_security",
"name": "Test sales_team_security user",
"groups_id": [(4, cls.env.ref("sales_team.group_sale_salesman").id)],
}
)

cls.crm_team_member = cls.env["crm.team.member"].create(
{
"user_id": cls.user.id,
"crm_team_id": cls.team.id,
}
)

cls.partner = cls.env["res.partner"].create(
{"name": "Test partner", "team_id": cls.team.id}
)
Expand All @@ -20,22 +37,20 @@ def setUpClass(cls):
cls.partner_child_2 = cls.env["res.partner"].create(
{"name": "Child 2", "parent_id": cls.partner.id, "type": "invoice"}
)
cls.user = cls.env["res.users"].create(
{
"login": "sales_team_security",
"name": "Test sales_team_security user",
"groups_id": [(4, cls.env.ref("sales_team.group_sale_salesman").id)],
"sale_team_id": cls.team.id,
}
)
cls.user2 = cls.env["res.users"].create(
{
"login": "sales_team_security2",
"name": "Test sales_team_security user 2",
"groups_id": [(4, cls.env.ref("sales_team.group_sale_salesman").id)],
"sale_team_id": cls.team.id,
}
)
cls.crm_team_member2 = cls.env["crm.team.member"].create(
{
"user_id": cls.user2.id,
"crm_team_id": cls.team.id,
}
)

cls.check_permission_subscribe = False

def _check_permission(self, salesman, team, expected):
Expand Down Expand Up @@ -75,15 +90,15 @@ def _check_whole_permission_set(self, extra_checks=True):
self._check_permission(self.user2, False, True)
self._check_permission(False, self.team, True)
if extra_checks:
self._check_permission(False, self.team2, False)
self._check_permission(False, self.team2, True)
self._check_permission(self.user, self.team, True)
if self.record._name == "res.partner":
self.check_permission_subscribe = True
self._check_permission(self.user, self.team2, True)
self.check_permission_subscribe = False
else:
self._check_permission(self.user, self.team2, True)
self._check_permission(self.user2, self.team2, False)
self._check_permission(self.user2, self.team2, True)
self._check_permission(self.user2, self.team, True)
# Add to group "See all leads"
self.user.groups_id = [
Expand Down

0 comments on commit 2e9bedf

Please sign in to comment.