Bug #17526
Taxonomy.ignore? does not work with "any context"
Description
In this scenario:
1. User has one organization - "E-Corp" - this organization allows the user to see every hostgroup (via selecting "all host groups" when editing the organization).
2. User has a location "Czech republic" that also includes all host groups through that checkbox.
3. User visits /hostgroups with "any context" selected, or "E-Corp/any location", or "any organization/Czech republic". The result is that the user does not see all host groups even though there's an organization/location combination (e-corp/czech republic) that should allow the user to see all host groups.
The reason is that when `Hostgroup.taxable_ids` is called `Organization.ignore?` does not realize that there it should look in all Organizations to see if any of them 'ignores' (has "all host groups" checked) the resource. The same thing happens with Locations.
The fix is to make `ignore?` aware the 'Organization.current == nil' means 'Any organization', not 'No organization'.
Associated revisions
refs #17526 - reset taxonomy.current after each test
The shared "ignores the taxable_type if current taxonomy ignores it"
test failed to reset the taxonomy in teardown, instead using the setup
routine. This causes failures in different test cases when the test was
last to run.
History
#1
Updated by The Foreman Bot over 5 years ago
- Status changed from New to Ready For Testing
- Assignee set to Daniel Lobato Garcia
- Pull request https://github.com/theforeman/foreman/pull/4070 added
#2
Updated by Daniel Lobato Garcia over 5 years ago
- Target version set to 1.4.3
#3
Updated by The Foreman Bot over 5 years ago
- Pull request https://github.com/theforeman/foreman/pull/3961 added
#4
Updated by Daniel Lobato Garcia over 5 years ago
- Target version changed from 1.4.3 to 169
#5
Updated by Anonymous over 5 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 2d9236b816d983b10e5f002c79d0f0b277b7db0e.
#6
Updated by Dominic Cleal over 5 years ago
- Legacy Backlogs Release (now unused) set to 209
#7
Updated by The Foreman Bot over 5 years ago
- Pull request https://github.com/theforeman/foreman/pull/4236 added
#8
Updated by Brad Buckingham over 5 years ago
- Target version deleted (
169)
#9
Updated by Daniel Lobato Garcia over 5 years ago
- Target version set to 1.11.0
Fixes #17526 - Taxonomy.ignore? does not work with "any context"
In this scenario:
1. User has one organization - "E-Corp" - this organization allows the
user to see every hostgroup (via selecting "all host groups" when
editing the organization).
2. User has a location "Czech republic" that also includes all host
groups through that checkbox.
3. User visits /hostgroups with "any context" selected, or "E-Corp/any
location", or "any organization/Czech republic". The result is that the
user does not see all host groups even though there's an
organization/location combination (e-corp/czech republic) that should
allow the user to see all host groups.
The reason is that when `Hostgroup.taxable_ids` is called
`Organization.ignore?` does not realize that there it should look in all
Organizations to see if any of them 'ignores' (has "all host groups"
checked) the resource. The same thing happens with Locations.
The fix is to make `ignore?` aware the 'Organization.current == nil'
means 'Any organization', not 'No organization'.