mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 01:06:11 -06:00
12589 bulk edit test fixes
This commit is contained in:
parent
923afae23d
commit
0fee7b71ff
@ -94,7 +94,6 @@ class ObjectPermissionMixin:
|
|||||||
|
|
||||||
def has_perm(self, user_obj, perm, obj=None):
|
def has_perm(self, user_obj, perm, obj=None):
|
||||||
app_label, action, model_name = resolve_permission(perm)
|
app_label, action, model_name = resolve_permission(perm)
|
||||||
# breakpoint()
|
|
||||||
|
|
||||||
# Superusers implicitly have all permissions
|
# Superusers implicitly have all permissions
|
||||||
if user_obj.is_active and user_obj.is_superuser:
|
if user_obj.is_active and user_obj.is_superuser:
|
||||||
|
@ -626,7 +626,6 @@ class BulkEditView(GetReturnURLMixin, BaseMultiObjectView):
|
|||||||
clear_webhooks.send(sender=self)
|
clear_webhooks.send(sender=self)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print(f"form errors: {form.errors}")
|
|
||||||
logger.debug("Form validation failed")
|
logger.debug("Form validation failed")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
@ -50,9 +50,6 @@ class UserBulkEditForm(BootstrapMixin, forms.Form):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.fields['pk'].queryset = self.model.objects.all()
|
self.fields['pk'].queryset = self.model.objects.all()
|
||||||
qs = self.fields['pk'].queryset
|
|
||||||
for i in qs:
|
|
||||||
print(f"pk: {i.pk}")
|
|
||||||
|
|
||||||
|
|
||||||
class GroupBulkEditForm(BootstrapMixin, forms.Form):
|
class GroupBulkEditForm(BootstrapMixin, forms.Form):
|
||||||
|
@ -197,11 +197,6 @@ class UserForm(BootstrapMixin, forms.ModelForm):
|
|||||||
|
|
||||||
del self.fields['confirm_password']
|
del self.fields['confirm_password']
|
||||||
|
|
||||||
# def is_valid(self):
|
|
||||||
# ret = super().is_valid()
|
|
||||||
# breakpoint()
|
|
||||||
# return ret
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
instance = super().save(*args, **kwargs)
|
instance = super().save(*args, **kwargs)
|
||||||
instance.object_permissions.set(self.cleaned_data['object_permissions'])
|
instance.object_permissions.set(self.cleaned_data['object_permissions'])
|
||||||
|
@ -406,6 +406,18 @@ class NetBoxUserBulkImportView(generic.BulkImportView):
|
|||||||
def get_required_permission(self):
|
def get_required_permission(self):
|
||||||
return get_permission_for_model(User, 'add')
|
return get_permission_for_model(User, 'add')
|
||||||
|
|
||||||
|
def dispatch(self, request, *args, **kwargs):
|
||||||
|
breakpoint()
|
||||||
|
return super().dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
breakpoint()
|
||||||
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
breakpoint()
|
||||||
|
return super().post(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class NetBoxUserBulkEditView(generic.BulkEditView):
|
class NetBoxUserBulkEditView(generic.BulkEditView):
|
||||||
queryset = NetBoxUser.objects.all()
|
queryset = NetBoxUser.objects.all()
|
||||||
@ -413,18 +425,6 @@ class NetBoxUserBulkEditView(generic.BulkEditView):
|
|||||||
table = tables.UserTable
|
table = tables.UserTable
|
||||||
form = forms.UserBulkEditForm
|
form = forms.UserBulkEditForm
|
||||||
|
|
||||||
def dispatch(self, request, *args, **kwargs):
|
|
||||||
# breakpoint()
|
|
||||||
return super().dispatch(request, *args, **kwargs)
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
|
||||||
# breakpoint()
|
|
||||||
return super().get(request, *args, **kwargs)
|
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
|
||||||
# breakpoint()
|
|
||||||
return super().post(request, *args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class NetBoxUserBulkDeleteView(generic.BulkDeleteView):
|
class NetBoxUserBulkDeleteView(generic.BulkDeleteView):
|
||||||
queryset = NetBoxUser.objects.all()
|
queryset = NetBoxUser.objects.all()
|
||||||
|
@ -18,7 +18,6 @@ def get_permission_for_model(model, action):
|
|||||||
:param model: A model or instance
|
:param model: A model or instance
|
||||||
:param action: View, add, change, or delete (string)
|
:param action: View, add, change, or delete (string)
|
||||||
"""
|
"""
|
||||||
# breakpoint()
|
|
||||||
ct = ContentType.objects.get_for_model(model)
|
ct = ContentType.objects.get_for_model(model)
|
||||||
return '{}.{}_{}'.format(
|
return '{}.{}_{}'.format(
|
||||||
ct.app_label,
|
ct.app_label,
|
||||||
@ -72,7 +71,7 @@ def permission_is_exempt(name):
|
|||||||
if action == 'view':
|
if action == 'view':
|
||||||
if (
|
if (
|
||||||
# All models (excluding those in EXEMPT_EXCLUDE_MODELS) are exempt from view permission enforcement
|
# All models (excluding those in EXEMPT_EXCLUDE_MODELS) are exempt from view permission enforcement
|
||||||
'*' in settings.EXEMPT_VIEW_PERMISSIONS and (app_label, model_name) not in settings.EXEMPT_EXCLUDE_MODELS
|
'*' in settings.EXEMPT_VIEW_PERMISSIONS and (f'{app_label}.{model_name}' in settings.EXEMPT_VIEW_PERMISSIONS or (app_label, model_name) not in settings.EXEMPT_EXCLUDE_MODELS)
|
||||||
) or (
|
) or (
|
||||||
# This specific model is exempt from view permission enforcement
|
# This specific model is exempt from view permission enforcement
|
||||||
f'{app_label}.{model_name}' in settings.EXEMPT_VIEW_PERMISSIONS
|
f'{app_label}.{model_name}' in settings.EXEMPT_VIEW_PERMISSIONS
|
||||||
|
@ -650,7 +650,7 @@ class ViewTestCases:
|
|||||||
if value is not None and not isinstance(field, ForeignKey):
|
if value is not None and not isinstance(field, ForeignKey):
|
||||||
self.assertEqual(value, value)
|
self.assertEqual(value, value)
|
||||||
|
|
||||||
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*',])
|
||||||
def test_bulk_import_objects_with_constrained_permission(self):
|
def test_bulk_import_objects_with_constrained_permission(self):
|
||||||
initial_count = self._get_queryset().count()
|
initial_count = self._get_queryset().count()
|
||||||
data = {
|
data = {
|
||||||
@ -704,7 +704,7 @@ class ViewTestCases:
|
|||||||
with disable_warnings('django.request'):
|
with disable_warnings('django.request'):
|
||||||
self.assertHttpStatus(self.client.post(self._get_url('bulk_edit'), data), 403)
|
self.assertHttpStatus(self.client.post(self._get_url('bulk_edit'), data), 403)
|
||||||
|
|
||||||
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user', 'auth.group'])
|
||||||
def test_bulk_edit_objects_with_permission(self):
|
def test_bulk_edit_objects_with_permission(self):
|
||||||
pk_list = list(self._get_queryset().values_list('pk', flat=True)[:3])
|
pk_list = list(self._get_queryset().values_list('pk', flat=True)[:3])
|
||||||
data = {
|
data = {
|
||||||
@ -729,7 +729,7 @@ class ViewTestCases:
|
|||||||
for i, instance in enumerate(self._get_queryset().filter(pk__in=pk_list)):
|
for i, instance in enumerate(self._get_queryset().filter(pk__in=pk_list)):
|
||||||
self.assertInstanceEqual(instance, self.bulk_edit_data)
|
self.assertInstanceEqual(instance, self.bulk_edit_data)
|
||||||
|
|
||||||
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user', 'auth.group'])
|
||||||
def test_bulk_edit_objects_with_constrained_permission(self):
|
def test_bulk_edit_objects_with_constrained_permission(self):
|
||||||
pk_list = list(self._get_queryset().values_list('pk', flat=True)[:3])
|
pk_list = list(self._get_queryset().values_list('pk', flat=True)[:3])
|
||||||
data = {
|
data = {
|
||||||
|
Loading…
Reference in New Issue
Block a user