Hello,
in one of my project it contains a searchbar with search suggestions. The underlying query is
select [rep:suggest()] from [nt:unstructured] as a where suggest('dual') AND ( ISDESCENDANTNODE('/content/sites/myPages/pageA')
or ISDESCENDANTNODE('/content/dam/myPages/pageA'))There also exists two usergroups. When this query is executed in context of usergroup one, AEM returns a result list with seven entries. When the same one is executed in context of usergroup two, AEM returns an empty result list. Both usergroups have at least read permissions in folder 'content/sites' and 'content/dam', because pages and containing asstes are visible in webbrowser.
I think, this is an issue of permissions. Though, I don't know how solve this issue.
Thanks inadvanced.
P.S.: In case the tag is not visible, I'm using AEM 6.5
Topics help categorize Community content and increase your ability to discover relevant content.
Views
Replies
Total Likes
Your rep:suggest() query returns results for one usergroup but empty results for another in AEM 6.5, even though both groups have read permissions on the folders and can view content in the browser.
Query:
select [rep:suggest()] from [nt:unstructured] as a
where suggest('dual')
AND (ISDESCENDANTNODE('/content/sites/myPages/pageA')
or ISDESCENDANTNODE('/content/dam/myPages/pageA'))The suggest function filters results based on user privileges at the Oak index level. In AEM 6.5, even with folder-level read access, the Oak permission system evaluates suggest queries differently than regular browsing. The suggest query requires explicit, unambiguous read permissions at the node level, not just inherited folder access.
Grant explicit permissions to usergroup two instead of relying on inheritance:
1. Verify ACL Order and DENY Rules
In AEM 6.5, ACL evaluation order is critical. The sequence of ALLOW/DENY policies matters - if DENY is placed after ALLOW in the ACL sequence, access will be blocked.
Check for:
How to check:
2. Check Fine-Grained Oak Permissions
AEM 6.5 uses Oak's fine-grained permission model. Ensure usergroup two has:
These can be separate from generic jcr:read in Oak's permission model.
How to verify:
3. Review rep:glob Restrictions
Look for rep:glob or other restrictions in usergroup two's ACL entries that might limit access in ways affecting the suggest query but not regular browsing.
Example problematic restriction:
Path: /content/sites/myPages rep:glob: */jcr:content/*
This would allow access to jcr:content nodes but might block other node types needed by the suggest query.
How to check:
4. Compare Effective Permissions Between Groups
Use impersonation to verify what each usergroup can actually access:
Look for differences in:
5. Check Lucene Index Configuration
In AEM 6.5, ensure the suggest index is properly configured and accessible:
6. Verify No User-Level Permission Conflicts
In AEM 6.5, user-level permissions take precedence over group permissions. Check if:
After making changes in AEM 6.5:
The key takeaway: In AEM 6.5, suggest queries require explicit, unambiguous read permissions at the node level. Inherited folder-level permissions are often insufficient for Oak index-based queries.
Thanks
Views
Replies
Total Likes
Hello @Magicr ,
You actually ran into a limitation of the CF Model editor, not something you can “fix” with a config tweak.
- In content fragment models only the top-level field is supported as required (via the Field required checkbox). The editor / validation logic is not built to handle required="on" on the child controls of a multifield.
When you add that property manually on the child textfield node in CRXDE, the HTML gets the required attribute, but the CF editor’s validation isn’t re-initialised for items that are added dynamically to the multifield ,that’s why:
- After you click Add, no “Must fill” appears, and after a full page refresh, the browser’s built-in validation finally kicks in and shows the message.
So this behaviour is expected/unsupported with the current implementation.
-> You can use the supported “Field required” on the multifield itself or,
add custom validation outside the CF Model editor
>For example: Validation in a workflow step that checks the CF content.
-> But there is no OOTB way to make each child textfield in a CF multifield behave as a required field at add time without the refresh. If this requirement is important for your project, the official path would be to log an enhancement / support ticket with Adobe so engineering can consider adding support for child-level validation in CF multifields in future.
Views
Replies
Total Likes
Thanks for you answer. At least for me, I don't use content fragments in my project.
Views
Replies
Total Likes
I think you meant the thread https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/the-quot-must-fill-quot-re... for your answer.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies