Skip to content

Commit 6192e01

Browse files
committed
Restrict add permission for Deals in DealAdmin and update tests accordingly
1 parent a0f4300 commit 6192e01

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

crm/site/dealadmin.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,11 @@ def save_related(self, request, form, formsets, change):
491491
obj.request.products.add(o.product)
492492
obj.request.save()
493493

494+
def has_add_permission(self, request):
495+
# Blocks user the ability to add a deal in Home page (Main Menu) and the crm section page (Home > CRM)
496+
return False
497+
498+
494499
# -- ModelAdmin Callables -- #
495500

496501
@admin.display(description=person_outline_safe_icon)
@@ -705,3 +710,5 @@ def view_company(self, obj):
705710
if obj.lead:
706711
return _("Contact is Lead (no company)")
707712
return LEADERS
713+
714+

tests/test_base.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,15 @@ def test_apps_models_perms(self):
7373
))
7474
reminder_model['perms']['add'] = False
7575
reminder_model['add_url'] = None
76+
# Remove "add" permission for "Deals"
77+
if app['app_label'] == 'crm':
78+
deal_model = next((
79+
m for m in app['models']
80+
if m['object_name'] == 'Deal'
81+
), None)
82+
if deal_model:
83+
deal_model['perms']['add'] = False
84+
deal_model['add_url'] = None
7685
self.client.force_login(self.users.get(username=username))
7786

7887
response = self.client.get(
@@ -142,6 +151,20 @@ def test_admin_apps_models_perms(self):
142151
))
143152
reminder['perms']['add'] = False
144153
"""
154+
# Remove "add" permission for "Deals" in admin
155+
crm_app = next((
156+
a for a in correct_app_list
157+
if a['name'] == 'Crm'
158+
), None)
159+
if crm_app:
160+
deal_model = next((
161+
m for m in crm_app['models']
162+
if m['object_name'] == 'Deal'
163+
), None)
164+
if deal_model:
165+
deal_model['perms']['add'] = False
166+
deal_model['add_url'] = None
167+
145168
self.check_app_availability_and_model_permissions(username, correct_app_list, context_app_list)
146169

147170
def check_app_availability_and_model_permissions(self, username, correct_app_list, context_app_list):

0 commit comments

Comments
 (0)