mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Introduce template filters for checking dynamic permissions
This commit is contained in:
30
netbox/utilities/templatetags/perms.py
Normal file
30
netbox/utilities/templatetags/perms.py
Normal file
@ -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')
|
Reference in New Issue
Block a user