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
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django import template
3from utilities.permissions import get_permission_for_model
5__all__ = (
6 'can_add',
7 'can_change',
8 'can_delete',
9 'can_run',
10 'can_sync',
11 'can_view',
12)
14register = template.Library()
17def _check_permission(user, instance, action):
18 permission = get_permission_for_model(instance, action)
19 return user.has_perm(perm=permission, obj=instance)
22@register.filter()
23def can_view(user, instance):
24 return _check_permission(user, instance, 'view')
27@register.filter()
28def can_add(user, model):
29 permission = get_permission_for_model(model, 'add')
30 return user.has_perm(perm=permission)
33@register.filter()
34def can_change(user, instance):
35 return _check_permission(user, instance, 'change')
38@register.filter()
39def can_delete(user, instance):
40 return _check_permission(user, instance, 'delete')
43@register.filter()
44def can_sync(user, instance):
45 return _check_permission(user, instance, 'sync')
48@register.filter()
49def can_run(user, instance):
50 return _check_permission(user, instance, 'run')