# netbox-field-permissions
Limit the ability for user/groups to change certain fields on NetBox objects.
By default, NetBox only allows you to restrict access an individual object, with this plugin you can restrict access on a field of an object.
A common use case for this is compliance where certain information is not allowed to be altered or simply prevent accidental changes.
## Compatibility
| NetBox Version | Plugin Version |
|----------------|----------------|
| 4.0, 4.1 | 0.1.X |
## Installing
For adding to a NetBox Docker setup see
[the general instructions for using netbox-docker with plugins](https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins).
### Install
```bash
pip install netbox-field-permissions
```
or by adding to your `local_requirements.txt` or `plugin_requirements.txt` (netbox-docker):
```bash
netbox-field-permissions
```
### Development Install
If you would like to install a version not yet published to pypi.
```bash
pip install git+https://github.com/TheDJVG/netbox-field-permissions
```
or by adding to your `local_requirements.txt` or `plugin_requirements.txt` (netbox-docker):
```bash
git+https://github.com/TheDJVG/netbox-field-permissions
```
### NetBox Configuration
Enable the plugin in `/opt/netbox/netbox/netbox/configuration.py`,
or if you use netbox-docker, your `/configuration/plugins.py` file :
```python
PLUGINS = [
'netbox_field_permissions'
]
```
### Validator installation
By default, the migration will install the validator for all models. If you're using a statically configured NetBox
instance you can use this `CUSTOM_VALIDATORS` block to install it for all models:
<details>
<summary>Show configuration snippet</summary>
```python
CUSTOM_VALIDATORS = {
"circuits.circuit": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"circuits.circuittermination": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"circuits.circuittype": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"circuits.provider": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"circuits.provideraccount": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"circuits.providernetwork": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.cable": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.cablepath": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.cabletermination": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.consoleport": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.consoleporttemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.consoleserverport": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.consoleserverporttemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.device": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.devicebay": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.devicebaytemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.devicerole": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.devicetype": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.frontport": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.frontporttemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.interface": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.interfacetemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.inventoryitem": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.inventoryitemrole": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.inventoryitemtemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.location": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.manufacturer": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.module": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.modulebay": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.modulebaytemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.moduletype": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.platform": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.powerfeed": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.poweroutlet": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.poweroutlettemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.powerpanel": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.powerport": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.powerporttemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.rack": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.rackreservation": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.rackrole": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.rearport": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.rearporttemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.region": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.site": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.sitegroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.virtualchassis": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"dcim.virtualdevicecontext": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.bookmark": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.branch": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.cachedvalue": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.configcontext": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.configtemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.customfield": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.customfieldchoiceset": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.customlink": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.dashboard": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.eventrule": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.exporttemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.imageattachment": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.journalentry": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.objectchange": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.reportmodule": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.savedfilter": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.script": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.scriptmodule": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.stagedchange": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.tag": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.taggeditem": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"extras.webhook": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.aggregate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.asn": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.asnrange": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.fhrpgroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.fhrpgroupassignment": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.ipaddress": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.iprange": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.prefix": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.rir": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.role": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.routetarget": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.service": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.servicetemplate": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.vlan": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.vlangroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"ipam.vrf": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"tenancy.contact": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"tenancy.contactassignment": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"tenancy.contactgroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"tenancy.contactrole": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"tenancy.tenant": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"tenancy.tenantgroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"virtualization.cluster": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"virtualization.clustergroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"virtualization.clustertype": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"virtualization.virtualdisk": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"virtualization.virtualmachine": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"virtualization.vminterface": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.ikepolicy": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.ikeproposal": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.ipsecpolicy": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.ipsecprofile": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.ipsecproposal": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.l2vpn": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.l2vpntermination": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.tunnel": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.tunnelgroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"vpn.tunneltermination": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"wireless.wirelesslan": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"wireless.wirelesslangroup": [
"netbox_field_permissions.validators.FieldPermissionValidator"
],
"wireless.wirelesslink": [
"netbox_field_permissions.validators.FieldPermissionValidator"
]
}
```
</details>
You can also view updated configuration on the `Plugins -> Field Permissions -> Manage Validator` page.
## Features
### Disallow changes to any user accessible field
When someone tries to alter a field they don't have access to an error will be emitted.
![Example permission denied](docs/img/action_denied.png)
### Easily verify validator install
Dynamic configurations can benefit from automatic (un)install of validator for every model.
![Config validation](docs/img/validator_config.png)
## Pending features
- Better selection of fields (some of the fields are for users but are currently shown).
- Better field names that match the other NetBox forms.
Raw data
{
"_id": null,
"home_page": "https://github.com/TheDJVG/netbox-field-permissions",
"name": "netbox-field-permissions",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "netbox, permissions",
"author": "Daan van Gorkum",
"author_email": "me+netbox@dj.vg",
"download_url": "https://files.pythonhosted.org/packages/8c/5a/7d93bcdcc8c20401df56c4f23a718679b802d109fa007e360a420f7e79f7/netbox_field_permissions-0.1.0rc2.tar.gz",
"platform": null,
"description": "# netbox-field-permissions\n\nLimit the ability for user/groups to change certain fields on NetBox objects.\n\nBy default, NetBox only allows you to restrict access an individual object, with this plugin you can restrict access on a field of an object.\n\nA common use case for this is compliance where certain information is not allowed to be altered or simply prevent accidental changes.\n## Compatibility\n\n| NetBox Version | Plugin Version |\n|----------------|----------------|\n| 4.0, 4.1 | 0.1.X |\n\n## Installing\n\nFor adding to a NetBox Docker setup see\n[the general instructions for using netbox-docker with plugins](https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins).\n\n### Install\n\n```bash\npip install netbox-field-permissions\n```\n\nor by adding to your `local_requirements.txt` or `plugin_requirements.txt` (netbox-docker):\n\n```bash\nnetbox-field-permissions\n```\n\n### Development Install\n\nIf you would like to install a version not yet published to pypi.\n\n```bash\npip install git+https://github.com/TheDJVG/netbox-field-permissions\n```\n\nor by adding to your `local_requirements.txt` or `plugin_requirements.txt` (netbox-docker):\n\n```bash\ngit+https://github.com/TheDJVG/netbox-field-permissions\n```\n\n### NetBox Configuration\n\nEnable the plugin in `/opt/netbox/netbox/netbox/configuration.py`,\nor if you use netbox-docker, your `/configuration/plugins.py` file :\n\n```python\nPLUGINS = [\n 'netbox_field_permissions'\n]\n```\n\n### Validator installation\nBy default, the migration will install the validator for all models. If you're using a statically configured NetBox\ninstance you can use this `CUSTOM_VALIDATORS` block to install it for all models:\n<details>\n<summary>Show configuration snippet</summary>\n\n```python\nCUSTOM_VALIDATORS = {\n \"circuits.circuit\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"circuits.circuittermination\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"circuits.circuittype\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"circuits.provider\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"circuits.provideraccount\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"circuits.providernetwork\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.cable\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.cablepath\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.cabletermination\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.consoleport\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.consoleporttemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.consoleserverport\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.consoleserverporttemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.device\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.devicebay\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.devicebaytemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.devicerole\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.devicetype\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.frontport\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.frontporttemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.interface\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.interfacetemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.inventoryitem\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.inventoryitemrole\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.inventoryitemtemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.location\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.manufacturer\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.module\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.modulebay\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.modulebaytemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.moduletype\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.platform\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.powerfeed\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.poweroutlet\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.poweroutlettemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.powerpanel\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.powerport\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.powerporttemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.rack\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.rackreservation\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.rackrole\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.rearport\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.rearporttemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.region\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.site\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.sitegroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.virtualchassis\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"dcim.virtualdevicecontext\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.bookmark\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.branch\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.cachedvalue\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.configcontext\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.configtemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.customfield\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.customfieldchoiceset\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.customlink\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.dashboard\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.eventrule\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.exporttemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.imageattachment\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.journalentry\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.objectchange\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.reportmodule\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.savedfilter\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.script\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.scriptmodule\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.stagedchange\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.tag\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.taggeditem\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"extras.webhook\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.aggregate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.asn\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.asnrange\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.fhrpgroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.fhrpgroupassignment\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.ipaddress\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.iprange\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.prefix\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.rir\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.role\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.routetarget\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.service\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.servicetemplate\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.vlan\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.vlangroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"ipam.vrf\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"tenancy.contact\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"tenancy.contactassignment\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"tenancy.contactgroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"tenancy.contactrole\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"tenancy.tenant\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"tenancy.tenantgroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"virtualization.cluster\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"virtualization.clustergroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"virtualization.clustertype\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"virtualization.virtualdisk\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"virtualization.virtualmachine\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"virtualization.vminterface\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.ikepolicy\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.ikeproposal\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.ipsecpolicy\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.ipsecprofile\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.ipsecproposal\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.l2vpn\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.l2vpntermination\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.tunnel\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.tunnelgroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"vpn.tunneltermination\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"wireless.wirelesslan\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"wireless.wirelesslangroup\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ],\n \"wireless.wirelesslink\": [\n \"netbox_field_permissions.validators.FieldPermissionValidator\"\n ]\n}\n```\n</details>\n\nYou can also view updated configuration on the `Plugins -> Field Permissions -> Manage Validator` page.\n\n## Features\n\n### Disallow changes to any user accessible field\n\nWhen someone tries to alter a field they don't have access to an error will be emitted.\n![Example permission denied](docs/img/action_denied.png)\n\n### Easily verify validator install\nDynamic configurations can benefit from automatic (un)install of validator for every model.\n![Config validation](docs/img/validator_config.png)\n\n## Pending features\n- Better selection of fields (some of the fields are for users but are currently shown).\n- Better field names that match the other NetBox forms.\n",
"bugtrack_url": null,
"license": null,
"summary": "NetBox plugin that provides permissions on object fields.",
"version": "0.1.0rc2",
"project_urls": {
"Homepage": "https://github.com/TheDJVG/netbox-field-permissions",
"Repository": "https://github.com/TheDJVG/netbox-field-permissions"
},
"split_keywords": [
"netbox",
" permissions"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "655dd3ace8778023f25a0059a61207554ab8eaafca150d5d9cefdaeab1ed9a17",
"md5": "432838cbb7d3c81bf67ea0553a643730",
"sha256": "1b4b9b3aff64c3483b99f45f6583b60a319b78fdf8520dc0d48ac6e76ea4fd65"
},
"downloads": -1,
"filename": "netbox_field_permissions-0.1.0rc2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "432838cbb7d3c81bf67ea0553a643730",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 18012,
"upload_time": "2024-10-10T11:36:12",
"upload_time_iso_8601": "2024-10-10T11:36:12.204468Z",
"url": "https://files.pythonhosted.org/packages/65/5d/d3ace8778023f25a0059a61207554ab8eaafca150d5d9cefdaeab1ed9a17/netbox_field_permissions-0.1.0rc2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8c5a7d93bcdcc8c20401df56c4f23a718679b802d109fa007e360a420f7e79f7",
"md5": "0187c176011fb26a236f1476c7f624e5",
"sha256": "9920b2bf5bfab9b6f03faedb6808b182f7ea4208575dd967fe56d3d41a6f7186"
},
"downloads": -1,
"filename": "netbox_field_permissions-0.1.0rc2.tar.gz",
"has_sig": false,
"md5_digest": "0187c176011fb26a236f1476c7f624e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 14010,
"upload_time": "2024-10-10T11:36:14",
"upload_time_iso_8601": "2024-10-10T11:36:14.179710Z",
"url": "https://files.pythonhosted.org/packages/8c/5a/7d93bcdcc8c20401df56c4f23a718679b802d109fa007e360a420f7e79f7/netbox_field_permissions-0.1.0rc2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-10 11:36:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TheDJVG",
"github_project": "netbox-field-permissions",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "netbox-field-permissions"
}