From 68ef5177f0519d1bb889a51974fdd5f075c8b0f0 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 25 Jun 2020 10:48:21 -0400 Subject: [PATCH] Introduce template filters for checking dynamic permissions --- netbox/utilities/templatetags/perms.py | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 netbox/utilities/templatetags/perms.py diff --git a/netbox/utilities/templatetags/perms.py b/netbox/utilities/templatetags/perms.py new file mode 100644 index 000000000..f1bbf7549 --- /dev/null +++ b/netbox/utilities/templatetags/perms.py @@ -0,0 +1,30 @@ +from django import template + +register = template.Library() + + +def _check_permission(user, instance, action): + return user.has_perm( + perm=f'{instance._meta.app_label}.{action}_{instance._meta.model_name}', + obj=instance + ) + + +@register.filter() +def can_view(user, instance): + return _check_permission(user, instance, 'view') + + +@register.filter() +def can_add(user, instance): + return _check_permission(user, instance, 'add') + + +@register.filter() +def can_change(user, instance): + return _check_permission(user, instance, 'change') + + +@register.filter() +def can_delete(user, instance): + return _check_permission(user, instance, 'delete')