Coverage for benefits/core/admin/transit.py: 96%

35 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-13 23:09 +0000

1from django.conf import settings 

2from django.contrib import admin 

3 

4from benefits.core import models 

5from .users import is_staff_member_or_superuser 

6 

7 

8@admin.register(models.TransitAgency) 

9class TransitAgencyAdmin(admin.ModelAdmin): 

10 def get_exclude(self, request, obj=None): 

11 fields = [] 

12 

13 if not request.user.is_superuser: 

14 fields.extend( 

15 [ 

16 "eligibility_api_private_key", 

17 "eligibility_api_public_key", 

18 "sso_domain", 

19 "transit_processor_audience", 

20 "transit_processor_client_id", 

21 "transit_processor_client_secret_name", 

22 ] 

23 ) 

24 

25 return fields or super().get_exclude(request, obj) 

26 

27 def get_readonly_fields(self, request, obj=None): 

28 fields = [] 

29 

30 if not request.user.is_superuser: 

31 fields.extend( 

32 [ 

33 "eligibility_api_id", 

34 "transit_processor", 

35 ] 

36 ) 

37 

38 return fields or super().get_readonly_fields(request, obj) 

39 

40 def has_add_permission(self, request): 

41 if settings.RUNTIME_ENVIRONMENT() != settings.RUNTIME_ENVS.PROD: 

42 return True 

43 elif request.user and is_staff_member_or_superuser(request.user): 43 ↛ 46line 43 didn't jump to line 46 because the condition on line 43 was always true

44 return True 

45 else: 

46 return False 

47 

48 

49@admin.register(models.TransitProcessor) 

50class TransitProcessorAdmin(admin.ModelAdmin): 

51 

52 def get_exclude(self, request, obj=None): 

53 fields = [] 

54 

55 if not request.user.is_superuser: 

56 fields.extend(["api_base_url", "card_tokenize_url", "card_tokenize_func", "card_tokenize_env"]) 

57 

58 return fields or super().get_exclude(request, obj) 

59 

60 def has_add_permission(self, request): 

61 if settings.RUNTIME_ENVIRONMENT() != settings.RUNTIME_ENVS.PROD: 

62 return True 

63 elif request.user and request.user.is_superuser: 

64 return True 

65 else: 

66 return False