Skip to content

Commit 6ce5b2b

Browse files
committed
[IMP] estate: security part, created groups for agent and manager
started security assignment by groups. created groups as per given exercise. created category for the application. faced so many errors while doing it. learned about record rules. created security for agent so that no other agent cannot see his properties . but manager group can access all the properties.
1 parent b413bdd commit 6ce5b2b

File tree

5 files changed

+43
-7
lines changed

5 files changed

+43
-7
lines changed

estate/__manifest__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
2-
"name": "Real Estate",
32
"version": "1.0",
3+
"name": "Real Estate",
4+
"category": "Real Estate/Brokerage",
45
"depends": ["base"],
56
"author": "djip-odoo",
67
"description": """
@@ -24,6 +25,7 @@
2425
"views/estate_property_offer_views.xml",
2526
"views/res_users_views.xml",
2627
# security
28+
"security/security.xml",
2729
"security/ir.model.access.csv",
2830
],
2931
"demo": [

estate/models/estate_property_offer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class EstatePropertyOffer(models.Model):
77
_name = "estate.property.offers"
88
_description = "Real Estate Property Offer"
99
_order = "price desc"
10-
10+
1111
_sql_constraints = [
1212
("check_price", "CHECK(price > 0)", "Price cannot be less than or equal to 0."),
1313
]

estate/models/res_users.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
class ResUsers(models.Model):
44
_inherit = "res.users"
55

6-
property_ids = fields.One2many("estate.property", "property_type_id")
6+
property_ids = fields.One2many("estate.property", "user_id")
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2-
estate.access_estate_property,access_estate_property,estate.model_estate_property,base.group_user,1,1,1,1
3-
estate.access_estate_property_types,access_estate_property_types,estate.model_estate_property_types,base.group_user,1,1,1,1
4-
estate.access_estate_property_tags,access_estate_property_tags,estate.model_estate_property_tags,base.group_user,1,1,1,1
5-
estate.access_estate_property_offers,access_estate_property_offers,estate.model_estate_property_offers,base.group_user,1,1,1,1
2+
estate.manager_access_estate_property,access_estate_property,estate.model_estate_property,estate.estate_group_manager,1,1,1,0
3+
estate.manager_access_estate_property_types,access_estate_property_types,estate.model_estate_property_types,estate.estate_group_manager,1,1,1,1
4+
estate.manager_access_estate_property_tags,access_estate_property_tags,estate.model_estate_property_tags,estate.estate_group_manager,1,1,1,1
5+
estate.manager_access_estate_property_offers,access_estate_property_offers,estate.model_estate_property_offers,estate.estate_group_manager,1,1,1,1
6+
7+
estate.agent_access_estate_property,access_estate_property,estate.model_estate_property,estate.estate_group_user,1,1,1,0
8+
estate.agent_access_estate_property_types,access_estate_property_types,estate.model_estate_property_types,estate.estate_group_user,1,0,0,0
9+
estate.agent_access_estate_property_tags,access_estate_property_tags,estate.model_estate_property_tags,estate.estate_group_user,1,0,0,0
10+
estate.agent_access_estate_property_offers,access_estate_property_offers,estate.model_estate_property_offers,estate.estate_group_user,1,1,1,0

estate/security/security.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<odoo>
2+
<record id="base.module_category_real_estate_brokerage" model="ir.module.category">
3+
<field name="name">Real Estate Brokerage</field>
4+
</record>
5+
6+
<!-- Create the Agent Group and Assign it to the Real Estate Brokerage Category -->
7+
<record id="estate_group_user" model="res.groups">
8+
<field name="name">Agent</field>
9+
<field name="category_id" ref="base.module_category_real_estate_brokerage" />
10+
</record>
11+
12+
<!-- Define Manager Group -->
13+
<record id="estate_group_manager" model="res.groups">
14+
<field name="name">Manager</field>
15+
<field name="category_id" ref="base.module_category_real_estate_brokerage" />
16+
<field name="implied_ids" eval="[(4, ref('estate_group_user'))]" />
17+
</record>
18+
19+
<record id="estate_property_agent_rule" model="ir.rule">
20+
<field name="name">Agent Access on Properties</field>
21+
<field name="model_id" ref="estate.model_estate_property" />
22+
<field name="groups" eval="[(4, ref('estate.estate_group_user'))]" />
23+
<field name="domain_force">["|",('user_id', '=', user.id),('user_id', '=', False)]</field>
24+
<field name="perm_read" eval="1" />
25+
<field name="perm_write" eval="1" />
26+
<field name="perm_create" eval="1" />
27+
<field name="perm_unlink" eval="0" />
28+
</record>
29+
</odoo>

0 commit comments

Comments
 (0)