From 82cf60091a46f38609fdce775de60fdc31915bb2 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 10 Apr 2026 16:24:01 -0400 Subject: [PATCH] Closes #21884: Deprecate the DEFAULT_ACTION_PERMISSIONS constant --- netbox/netbox/constants.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/netbox/netbox/constants.py b/netbox/netbox/constants.py index a0ba966d7..efe42c383 100644 --- a/netbox/netbox/constants.py +++ b/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***'