Coverage for benefits/core/admin/transit.py: 96%
39 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-22 21:13 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-22 21:13 +0000
1from django.conf import settings
2from django.contrib import admin
4from benefits.core import models
5from .users import is_staff_member_or_superuser
8@admin.register(models.LittlepayConfig)
9class LittlepayConfigAdmin(admin.ModelAdmin):
10 def has_module_permission(self, request):
11 """
12 This controls whether the model shows up in the main list of models.
13 """
14 # we don't want to display LittlepayConfig on the main list.
15 # the user should view it from the TransitAgency.
16 return False
19@admin.register(models.TransitAgency)
20class TransitAgencyAdmin(admin.ModelAdmin):
21 def get_exclude(self, request, obj=None):
22 fields = []
24 if not request.user.is_superuser:
25 fields.extend(
26 [
27 "eligibility_api_private_key",
28 "eligibility_api_public_key",
29 "sso_domain",
30 "littlepay_config",
31 ]
32 )
34 return fields or super().get_exclude(request, obj)
36 def get_readonly_fields(self, request, obj=None):
37 fields = []
39 if not request.user.is_superuser:
40 fields.extend(
41 [
42 "eligibility_api_id",
43 "transit_processor",
44 ]
45 )
47 return fields or super().get_readonly_fields(request, obj)
49 def has_add_permission(self, request):
50 if settings.RUNTIME_ENVIRONMENT() != settings.RUNTIME_ENVS.PROD:
51 return True
52 elif request.user and is_staff_member_or_superuser(request.user): 52 ↛ 55line 52 didn't jump to line 55 because the condition on line 52 was always true
53 return True
54 else:
55 return False
58@admin.register(models.TransitProcessor)
59class TransitProcessorAdmin(admin.ModelAdmin):
61 def get_exclude(self, request, obj=None):
62 fields = []
64 if not request.user.is_superuser:
65 fields.extend(["api_base_url", "card_tokenize_url", "card_tokenize_func", "card_tokenize_env"])
67 return fields or super().get_exclude(request, obj)
69 def has_add_permission(self, request):
70 if settings.RUNTIME_ENVIRONMENT() != settings.RUNTIME_ENVS.PROD:
71 return True
72 elif request.user and request.user.is_superuser:
73 return True
74 else:
75 return False