[AEM Cloud] The policies I've defined under wcm/policies are not applying. | Community
Skip to main content
Jeanmaradiaga
Level 3
November 22, 2021

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

  • November 22, 2021
  • 2 replies
  • 2657 views

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.

 


 

 

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>
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

Kishore_Kumar_
Level 9
November 23, 2021

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. 

 

 

Jeanmaradiaga
Level 3
November 23, 2021

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
Level 3
November 23, 2021

Hi @arunpatidar ,

 

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

 

 

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.

arunpatidar
Community Advisor
Community Advisor
November 24, 2021

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.content/src/main/content/jcr_root/conf/aemlab/settings/wcm/policies/.content.xml#L389

 

 

Used within the template https://github.com/arunpatidar02/aemaacs-aemlab/blob/9adb6f83726db2dd78a462428034207323f2290a/ui.content/src/main/content/jcr_root/conf/aemlab/settings/wcm/templates/page-content/policies/.content.xml#L46

 

 

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>

 

 

 

 

Arun Patidar