From 94612fd728228c4f6f9fc0286421964472750fed Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Tue, 7 Apr 2026 10:15:16 -0500 Subject: [PATCH] Remove register_model_actions from public API Meta.permissions is the documented approach for plugins. The register_model_actions function is now an internal implementation detail. --- docs/plugins/development/permissions.md | 27 ------------------------- netbox/utilities/permissions.py | 1 - 2 files changed, 28 deletions(-) diff --git a/docs/plugins/development/permissions.md b/docs/plugins/development/permissions.md index 792632a59..62a1ede1b 100644 --- a/docs/plugins/development/permissions.md +++ b/docs/plugins/development/permissions.md @@ -21,31 +21,4 @@ class MyModel(NetBoxModel): ] ``` -For dynamic registration (e.g. when actions depend on runtime state), you can call `register_model_actions()` directly, typically in your plugin's `ready()` method: - -```python -# __init__.py -from netbox.plugins import PluginConfig - -class MyPluginConfig(PluginConfig): - name = 'my_plugin' - # ... - - def ready(self): - super().ready() - from utilities.permissions import ModelAction, register_model_actions - from .models import MyModel - - register_model_actions(MyModel, [ - ModelAction('sync', help_text='Synchronize data from external source'), - ModelAction('export', help_text='Export data to external system'), - ]) - -config = MyPluginConfig -``` - Once registered, these actions appear as checkboxes in a flat list when creating or editing an ObjectPermission. - -::: utilities.permissions.ModelAction - -::: utilities.permissions.register_model_actions diff --git a/netbox/utilities/permissions.py b/netbox/utilities/permissions.py index ea834cd0a..0cee1db9d 100644 --- a/netbox/utilities/permissions.py +++ b/netbox/utilities/permissions.py @@ -13,7 +13,6 @@ __all__ = ( 'get_permission_for_model', 'permission_is_exempt', 'qs_filter_from_constraints', - 'register_model_actions', 'resolve_permission', 'resolve_permission_type', )