netbox-field-permissions


Namenetbox-field-permissions JSON
Version 0.1.0rc2 PyPI version JSON
download
home_pagehttps://github.com/TheDJVG/netbox-field-permissions
SummaryNetBox plugin that provides permissions on object fields.
upload_time2024-10-10 11:36:14
maintainerNone
docs_urlNone
authorDaan van Gorkum
requires_python<4.0,>=3.11
licenseNone
keywords netbox permissions
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.45311s