Coverage for utilities/templatetags/perms.py: 65%

26 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from django import template 

2 

3from utilities.permissions import get_permission_for_model 

4 

5__all__ = ( 

6 'can_add', 

7 'can_change', 

8 'can_delete', 

9 'can_run', 

10 'can_sync', 

11 'can_view', 

12) 

13 

14register = template.Library() 

15 

16 

17def _check_permission(user, instance, action): 

18 permission = get_permission_for_model(instance, action) 

19 return user.has_perm(perm=permission, obj=instance) 

20 

21 

22@register.filter() 

23def can_view(user, instance): 

24 return _check_permission(user, instance, 'view') 

25 

26 

27@register.filter() 

28def can_add(user, model): 

29 permission = get_permission_for_model(model, 'add') 

30 return user.has_perm(perm=permission) 

31 

32 

33@register.filter() 

34def can_change(user, instance): 

35 return _check_permission(user, instance, 'change') 

36 

37 

38@register.filter() 

39def can_delete(user, instance): 

40 return _check_permission(user, instance, 'delete') 

41 

42 

43@register.filter() 

44def can_sync(user, instance): 

45 return _check_permission(user, instance, 'sync') 

46 

47 

48@register.filter() 

49def can_run(user, instance): 

50 return _check_permission(user, instance, 'run')