Преглед изворни кода

Closes #21884: Deprecate the DEFAULT_ACTION_PERMISSIONS constant

Jeremy Stretch пре 2 месеци
родитељ
комит
82cf60091a
1 измењених фајлова са 16 додато и 2 уклоњено
  1. 16 2
      netbox/netbox/constants.py

+ 16 - 2
netbox/netbox/constants.py

@@ -44,9 +44,9 @@ ADVISORY_LOCK_KEYS = {
     'job-schedules': 110100,
 }
 
-# TODO: Remove in NetBox v4.5
+# TODO: Remove in NetBox v4.7
 # Legacy default view action permission mapping
-DEFAULT_ACTION_PERMISSIONS = {
+_DEFAULT_ACTION_PERMISSIONS = {
     'add': {'add'},
     'export': {'view'},
     'bulk_import': {'add'},
@@ -54,6 +54,20 @@ DEFAULT_ACTION_PERMISSIONS = {
     'bulk_delete': {'delete'},
 }
 
+
+def __getattr__(name):
+    if name == 'DEFAULT_ACTION_PERMISSIONS':
+        import warnings
+        warnings.warn(
+            f"{name} is deprecated and will be removed in NetBox v4.7. "
+            "Define action permissions via ObjectAction subclasses instead.",
+            DeprecationWarning,
+            stacklevel=2,
+        )
+        return _DEFAULT_ACTION_PERMISSIONS
+    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
+
+
 # General-purpose tokens
 CENSOR_TOKEN = '********'
 CENSOR_TOKEN_CHANGED = '***CHANGED***'