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

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.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 

17 

18 

19@admin.register(models.TransitAgency) 

20class TransitAgencyAdmin(admin.ModelAdmin): 

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

22 fields = [] 

23 

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 ) 

33 

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

35 

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

37 fields = [] 

38 

39 if not request.user.is_superuser: 

40 fields.extend( 

41 [ 

42 "eligibility_api_id", 

43 "transit_processor", 

44 ] 

45 ) 

46 

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

48 

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 

56 

57 

58@admin.register(models.TransitProcessor) 

59class TransitProcessorAdmin(admin.ModelAdmin): 

60 

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

62 fields = [] 

63 

64 if not request.user.is_superuser: 

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

66 

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

68 

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