Explorar el Código

Introduce template filters for checking dynamic permissions

Jeremy Stretch hace 5 años
padre
commit
68ef5177f0
Se han modificado 1 ficheros con 30 adiciones y 0 borrados
  1. 30 0
      netbox/utilities/templatetags/perms.py

+ 30 - 0
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')