Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

[AEM Cloud] The policies I've defined under wcm/policies are not applying.

Avatar

Level 4

Hello,

 

I am currently struggling with defining policies on my code using the .content.xml under wcm/policies. For example I have a Section Container component that has a responsivegrid inside its HTML. My idea is to only allow the components group "Content" in there, so in my policies I added the following snippet:

 

            <section-container jcr:primaryType="nt:unstructured">
                <policy_1595870812979
                    jcr:primaryType="nt:unstructured"
                    jcr:title="Section Container"
                    sling:resourceType="wcm/core/components/policy/policy"
                    components="group:KG AEM Commons - Content">
                    <jcr:content jcr:primaryType="nt:unstructured"/>
                </policy_1595870812979>
            </section-container>

 

But when I do a clean install with the command mvn clean install -PautoInstallPackage and I check my policies the group was not added correctly, meaning I have to do it manually, as shown below. This is particular annoying because after each install my policies reset so I have to do this again.

 


Z78jwHMzhs.gif

 

 

Could it be the fault of my filters file? For the content module I define my filters as:

 

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
    <filter root="/conf/kg-commons" mode="update"/>
    <filter root="/content/kg-commons" mode="merge"/>
    <filter root="/content/dam/kg-commons" mode="merge"/>
    <filter root="/content/cq:tags/kg-commons" mode="merge"/>
    <filter root="/content/campaigns" mode="merge"/>
    <filter root="/content/experience-fragments/kg-commons" mode="merge"/>
    <filter root="/conf/kg-commons/settings/wcm/segments" mode="merge"/>
    <filter root="/conf/kg-commons/settings/wcm/policies/.content.xml" mode="merge"/>
</workspaceFilter>
0 Replies

Avatar

Community Advisor

Hi @Jeanmaradiaga ,

 

Filters might be the issue, please try changing the filter mode of last filter to update/replace instead of merge as it won't modify the existing node. 

 

 

Avatar

Level 4

Hello @Kishore_Kumar_  thanks for the reply. I tried updating the last filter to update and then replace but it didn't seem to work. When installing my template still has an empty policy

 

Jeanmaradiaga_0-1637695921241.png

 

Avatar

Level 4

Hi @Arun_Patidar ,

 

Thanks for the reference it has been very helpful, unfortunately it still not works for me. I am wondering how can my policy know that I want my Section Container to allow all the components in the KG AEM Commons - Content group.

 

For example this is my section container, which contains a responsivegrid inside

 

....
<sly data-sly-resource="${resource @ resourceType='wcm/foundation/components/responsivegrid'}"></sly>
....

 

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
          cq:icon="panel"
          jcr:description="Basic layout component"
          jcr:primaryType="cq:Component"
          jcr:title="Section Container"
          sling:resourceSuperType="core/wcm/components/container/v1/container"
          componentGroup="KG AEM Commons - Full Width"/>

Then I define the policy, just like you did in your project

<section-container jcr:primaryType="nt:unstructured">
                <policy_1595870812979
                    jcr:primaryType="nt:unstructured"
                    jcr:title="Section Container"
                    sling:resourceType="wcm/core/components/policy/policy"
                    components="[group:KG AEM Commons - Content]">
                    <jcr:content jcr:primaryType="nt:unstructured"/>
                </policy_1595870812979>
 </section-container>

But on a normal content page when I add a Section Container and try to add anything like a text or button that belongs to the Content group I only see this

 

Jeanmaradiaga_0-1637702713878.png

 

I know I can manually add it via the Template Editor but my code should work, it doesn't seem to have anything wrong at a a glance.

Avatar

Community Advisor

Hi, 
You have defined the policy but you need to use this policy inside your template as well.

for e.g. I am using teaser policy 

 

Policy defintaion

https://github.com/arunpatidar02/aemaacs-aemlab/blob/9adb6f83726db2dd78a462428034207323f2290a/ui.con...

 

 

Used within the template https://github.com/arunpatidar02/aemaacs-aemlab/blob/9adb6f83726db2dd78a462428034207323f2290a/ui.con...

 

 

In your case you may have to either defined or use policy with nested wcm resource type like below

 

<section-container jcr:primaryType="nt:unstructured">
<wcm>
<foundation>
<components>
<responsivegrid>
                <policy_1595870812979
                    jcr:primaryType="nt:unstructured"
                    jcr:title="Section Container"
                    sling:resourceType="wcm/core/components/policy/policy"
                    components="[group:KG AEM Commons - Content]">
                    <jcr:content jcr:primaryType="nt:unstructured"/>
                </policy_1595870812979>
</responsivegrid>
</components>
</foundation>
</wcm>
 </section-container>