Permissions constraints are not applied to rack count within a rack group or rack role #4494

Closed
opened 2025-12-29 18:36:36 +01:00 by adam · 5 comments
Owner

Originally created by @cpmills1975 on GitHub (Jan 26, 2021).

Environment

  • Python version: 3.9
  • NetBox version: 2.10.3

Steps to Reproduce

  1. Create a rack group (rackgroup_a)
  2. Create two racks (name "rack_a" and "rack_b") and add them to the group (rackgroup_a)
  3. Create a permissions rule that grants view permissions on dcim > rack, but limit the racks visible to just one of the racks with a suitable constraint e.g. { "name": "rack_a" }
  4. Create a permissions rule that grants view permissions on dcim > rack_group
  5. View the list of rack groups /dcim/rack-groups
  6. Observe the number of racks in rackgroup_a is 2
  7. Click on rackgroup_a to view the list of racks in the group
  8. Observe that only one rack (rack_a) is shown

Expected Behavior

/dcim/rack-groups should show rackgroup_a with only one rack

Observed Behavior

rackgroup_a appears to have two racks (as it really does), but the test user can only see one.

Originally created by @cpmills1975 on GitHub (Jan 26, 2021). <!-- NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED. This form is only for reporting reproducible bugs. If you need assistance with NetBox installation, or if you have a general question, please start a discussion instead: https://github.com/netbox-community/netbox/discussions Please describe the environment in which you are running NetBox. Be sure that you are running an unmodified instance of the latest stable release before submitting a bug report, and that any plugins have been disabled. --> ### Environment * Python version: 3.9 * NetBox version: 2.10.3 <!-- Describe in detail the exact steps that someone else can take to reproduce this bug using the current stable release of NetBox. Begin with the creation of any necessary database objects and call out every operation being performed explicitly. If reporting a bug in the REST API, be sure to reconstruct the raw HTTP request(s) being made: Don't rely on a client library such as pynetbox. --> ### Steps to Reproduce 1. Create a rack group (rackgroup_a) 2. Create two racks (name "rack_a" and "rack_b") and add them to the group (rackgroup_a) 3. Create a permissions rule that grants view permissions on dcim > rack, but limit the racks visible to just one of the racks with a suitable constraint e.g. { "name": "rack_a" } 4. Create a permissions rule that grants view permissions on dcim > rack_group 5. View the list of rack groups /dcim/rack-groups 6. Observe the number of racks in rackgroup_a is 2 7. Click on rackgroup_a to view the list of racks in the group 8. Observe that only one rack (rack_a) is shown <!-- What did you expect to happen? --> ### Expected Behavior /dcim/rack-groups should show rackgroup_a with only one rack <!-- What happened instead? --> ### Observed Behavior rackgroup_a appears to have two racks (as it really does), but the test user can only see one.
adam added the pending closure label 2025-12-29 18:36:36 +01:00
adam closed this issue 2025-12-29 18:36:36 +01:00
Author
Owner

@cpmills1975 commented on GitHub (Jan 26, 2021):

It seems this also applies to rack roles

@cpmills1975 commented on GitHub (Jan 26, 2021): It seems this also applies to rack roles
Author
Owner

@jeremystretch commented on GitHub (Jan 26, 2021):

It's not really feasible to limit the counts of related objects in the proposed manner, as it would require a separate database query for each object. The purpose of object-based permissions in NetBox is to control who can access and modify individual objects, not to obscure their existence entirely.

@jeremystretch commented on GitHub (Jan 26, 2021): It's not really feasible to limit the counts of related objects in the proposed manner, as it would require a separate database query for each object. The purpose of object-based permissions in NetBox is to control who can access and modify individual objects, not to obscure their existence entirely.
Author
Owner

@pvinci commented on GitHub (Jan 26, 2021):

I see permissions as being orthogonal to this issue. In my mind, permissions are actions that are granted; A level-1 tech can view but not modify an object. This seems like a problem of filtering the objects that a given set of permissions apply to.

In openstack, for example, a user selects a tenant to limit the scope of the objects, and the permissions specify what actions can be taken for the scope of objects.

@pvinci commented on GitHub (Jan 26, 2021): I see permissions as being orthogonal to this issue. In my mind, permissions are actions that are granted; A level-1 tech can view but not modify an object. This seems like a problem of filtering the objects that a given set of permissions apply to. In openstack, for example, a user selects a tenant to limit the scope of the objects, and the permissions specify what actions can be taken for the scope of objects.
Author
Owner

@stale[bot] commented on GitHub (Mar 26, 2021):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.

@stale[bot] commented on GitHub (Mar 26, 2021): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our [contributing guide](https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md).
Author
Owner

@github-actions[bot] commented on GitHub (Apr 14, 2021):

This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.

@github-actions[bot] commented on GitHub (Apr 14, 2021): This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#4494