User tests: Successful: Unsuccessful:
Pull Request resolves #47839.
Joomla access-level IDs are identifiers, not an ordering of restrictiveness. Smart Search therefore cannot combine an item's access level with its category access level by choosing the larger ID.
This change stores the item and category access levels independently in #__finder_links and requires the current user to be authorized for both when loading search results or suggestions. It also:
The PR targets 6.2-dev because the separate cat_access schema is a feature-level database change. Existing Smart Search data must be cleared and reindexed after applying the database update so that cat_access is populated from each source item.
Automated checks run locally against 6.2-dev:
Manual reproduction:
The guest search shows the article even though opening it is denied. The indexed row keeps only the article access level and discards the category access level.
The article is excluded from guest search results and remains available to users authorized for both the article and its category. Custom access-level IDs work the same way regardless of their numeric order.
Please select:
Documentation link for guide.joomla.org:
No documentation changes for guide.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
| Status | New | ⇒ | Pending |
| Category | ⇒ | Administration com_finder Unit Tests |
| Title |
|
||||||
| Labels |
Added:
Unit/System Tests
PR-5.4-dev
|
||
| Category | Administration com_finder Unit Tests | ⇒ | SQL Administration com_admin Postgresql com_finder Front End Installation Unit Tests |
@richard67 beat me to it
| Category | Administration com_finder Unit Tests SQL com_admin Postgresql Front End Installation | ⇒ | Repository Administration com_admin SQL |
| Title |
|
||||||
| Category | Administration SQL com_admin Repository | ⇒ | SQL Administration com_admin Postgresql com_finder Front End Installation Unit Tests |
Thanks @richard67 and @brianteeman. I have retargeted the existing PR to 6.2-dev, ported the change onto the current 6.2 branch, and renamed the update migrations to 6.2.0. The focused category-access tests (4 tests, 8 assertions), full unit suite (1,131 tests, 1,638 assertions, one existing skip), PHPStan, and the repository CS Fixer dry run all pass against 6.2.
| Labels |
Added:
PR-6.2-dev
|
||
| Labels |
Added:
Updates Requested
Removed: PR-5.4-dev |
||
@carrerasdarren-cell Adding a new database columns is very likely not just a bug fix but a new feature.
New features go into 6.2-dev, see https://github.com/joomla/joomla-cms#which-branch-should-my-pull-request-target