Merge branch 'develop' into feature

This commit is contained in:
Jeremy Stretch
2024-02-05 14:38:26 -05:00
106 changed files with 30533 additions and 2746 deletions

View File

@@ -27,6 +27,13 @@ def get_serializer_for_model(model, prefix=''):
# Serializers for Django's auth models are in the users app
if app_name == 'auth':
app_name = 'users'
# Account for changes using Proxy model
if app_name == 'users':
if model_name == 'NetBoxUser':
model_name = 'User'
elif model_name == 'NetBoxGroup':
model_name = 'Group'
serializer_name = f'{app_name}.api.serializers.{prefix}{model_name}Serializer'
try:
return dynamic_import(serializer_name)

View File

@@ -105,7 +105,12 @@ class JSONField(_JSONField):
return value
if value in ('', None):
return ''
return json.dumps(value, sort_keys=True, indent=4)
if type(value) is str:
try:
value = json.loads(value, cls=self.decoder)
except json.decoder.JSONDecodeError:
return value
return json.dumps(value, sort_keys=True, indent=4, ensure_ascii=False, cls=self.encoder)
class MACAddressField(forms.Field):

View File

@@ -24,8 +24,9 @@ def can_view(user, instance):
@register.filter()
def can_add(user, instance):
return _check_permission(user, instance, 'add')
def can_add(user, model):
permission = get_permission_for_model(model, 'add')
return user.has_perm(perm=permission)
@register.filter()

View File

@@ -53,6 +53,8 @@ def get_viewname(model, action=None, rest_api=False):
# Alter the app_label for group and user model_name to point to users app
if app_label == 'auth' and model_name in ['group', 'user']:
app_label = 'users'
if app_label == 'users' and model._meta.proxy and model_name in ['netboxuser', 'netboxgroup']:
model_name = model._meta.proxy_for_model._meta.model_name
viewname = f'{app_label}-api:{model_name}'
# Append the action, if any