瀏覽代碼

fix(users): Normalize actions in cloned objects init

Ensure `actions` are consistently normalized to a list of strings during
cloned object initialization. This resolves potential type mismatches
when processing user form data.

Fixes #20750
Martin Hauser 6 月之前
父節點
當前提交
b5a9cb1762
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      netbox/users/forms/model_forms.py

+ 3 - 0
netbox/users/forms/model_forms.py

@@ -372,6 +372,9 @@ class ObjectPermissionForm(forms.ModelForm):
         elif self.initial:
         elif self.initial:
             # Handle cloned objects - actions come from initial data (URL parameters)
             # Handle cloned objects - actions come from initial data (URL parameters)
             if 'actions' in self.initial:
             if 'actions' in self.initial:
+                # Normalize actions to a list of strings
+                if isinstance(self.initial['actions'], str):
+                    self.initial['actions'] = [self.initial['actions']]
                 if cloned_actions := self.initial['actions']:
                 if cloned_actions := self.initial['actions']:
                     for action in ['view', 'add', 'change', 'delete']:
                     for action in ['view', 'add', 'change', 'delete']:
                         if action in cloned_actions:
                         if action in cloned_actions: