mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-19 03:42:25 -06:00
Merge branch 'develop' into feature
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user