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

Adobe Summit 2023 [19th to 23rd March, Las Vegas and Virtual] | Complete AEM Session & Lab list

[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 @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

 

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>