Bug #21253
closedPG::Error: missing FROM-clause entry from items in Dashboard for Filtered role
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1481138
Description of problem:
PG error on items in Dashboard such as latest Errata and latest events.
When creating a custom role with the following filters
1. Resource Miscellaneous => access_dashboard
2. Host => view_hosts, edit_hosts, destroy_hosts with unlimited unselected and search "host_collection = HostCollection1 or host_collection = HostCollection2"
And assign this role to the user.
Version-Release number of selected component (if applicable):
6.2.10
How reproducible:
Always
Steps to Reproduce:
1. Create a custom role 'Custom role'
2. Assign above mentioned filters to the above created Custom role
3. Assign this custom role to the user.
4. Try to login with this user.
5. Hit the dashboard menu
Actual results:
Failure: PG::Error: ERROR: subquery in FROM must have an alias
LINE 1: SELECT COUNT FROM (SELECT 1 AS count_column F...
^
HINT: For example, FROM (SELECT ...) [AS] foo.
: SELECT COUNT FROM (SELECT 1 AS count_column FROM "katello_errata" INNER JOIN "katello_content_facet_errata" ON "katello_content_facet_errata"."erratum_id" = "katello_errata"."id" INNER JOIN "katello_content_facets" ON "katello_content_facets"."id" = "katello_content_facet_errata"."content_facet_id" WHERE (katello_content_facets.host_id IN (SELECT "hosts"."id" FROM "hosts"
INNER JOIN "katello_host_collection_hosts"
ON "hosts"."id" = "katello_host_collection_hosts"."host_id"
INNER JOIN "katello_host_collections"
ON "katello_host_collection_hosts"."host_collection_id" = "katello_host_collections"."id"
WHERE "katello_host_collections"."name" = 'HostCollection1' )) OR ("hosts"."id" IN (SELECT "hosts"."id" FROM "hosts"
INNER JOIN "katello_host_collection_hosts"
ON "hosts"."id" = "katello_host_collection_hosts"."host_id"
INNER JOIN "katello_host_collections"
ON "katello_host_collection_hosts"."host_collection_id" = "katello_host_collections"."id"
WHERE "katello_host_collections"."name" = 'HostCollection2' )))))) LIMIT 6) subquery_for_count
Expected results:
User should be able to view the items latest Errata and latest events on dashboard
Additional info:
when changing the search filter with '~' in place of '=' it works
host_collection ~ HostCollection1 or host_collection ~ HostCollection2