Make sure you have the forge Maven2 repository reference and dependency definition in the root pom.xml of your project.
<repositories>
<!-- SNIP -->
<repository>
<id>bloomreach-maven2-forge</id>
<name>Bloomreach Maven 2 Forge repository</name>
<url>https://maven.bloomreach.com/maven2-forge/</url>
<snapshots />
</repository>
<!-- SNIP -->
</repositories>
<!-- SNIP -->
<dependencyManagement>
<!-- SNIP -->
<dependencies>
<!-- SNIP -->
<!-- NOTE: You should set a property named 'forge.folderctxmenus.version' to a version of this plugin! -->
<dependency>
<groupId>org.onehippo.forge.folderctxmenus</groupId>
<artifactId>folderctxmenus-repository</artifactId>
<version>${forge.folderctxmenus.version}</version>
</dependency>
<dependency>
<groupId>org.onehippo.forge.folderctxmenus</groupId>
<artifactId>folderctxmenus-frontend</artifactId>
<version>${forge.folderctxmenus.version}</version>
</dependency>
<!-- SNIP -->
</dependencies>
<!-- SNIP -->
</dependencyManagement>
Add the following dependencies to either cms-dependencies/pom.xml in Bloomreach XM v13
or cms/pom.xml in the earlier versions.
<dependencies>
<!-- SNIP -->
<dependency>
<groupId>org.onehippo.forge.folderctxmenus</groupId>
<artifactId>folderctxmenus-repository</artifactId>
</dependency>
<dependency>
<groupId>org.onehippo.forge.folderctxmenus</groupId>
<artifactId>folderctxmenus-frontend</artifactId>
</dependency>
<!-- SNIP -->
</dependencies>
Now, you're ready to use the plugin!
If you want to use only Programmatic Folder Copy and Move, then you may add the following dependency only.
<repositories>
<!-- SNIP -->
<repository>
<id>bloomreach-maven2-forge</id>
<name>Bloomreach Maven 2 Forge repository</name>
<url>https://maven.bloomreach.com/maven2-forge/</url>
<snapshots />
</repository>
<!-- SNIP -->
</repositories>
<!-- SNIP -->
<dependencyManagement>
<!-- SNIP -->
<dependencies>
<!-- SNIP -->
<!-- NOTE: You should set a property named 'forge.folderctxmenus.version' to a version of this plugin! -->
<dependency>
<groupId>org.onehippo.forge.folderctxmenus</groupId>
<artifactId>folderctxmenus-common</artifactId>
<version>${forge.folderctxmenus.version}</version>
</dependency>
<!-- SNIP -->
</dependencies>
<!-- SNIP -->
</dependencyManagement>
And add the following dependency reference into your Web Application module subproject(s).
<dependencies>
<!-- SNIP -->
<dependency>
<groupId>org.onehippo.forge.folderctxmenus</groupId>
<artifactId>folderctxmenus-common</artifactId>
</dependency>
<!-- SNIP -->
</dependencies>
Now, you're ready to use the common module of the plugin!
For users to have access to the extra folder options, it is required that they are granted an additional role folderctxmenus-editor (privilege 'folderctxmenus:editor'). This privilege should be granted on the folders for which those extra actions should become available.
By default only the admin has privileges to use the extra folder options. This is specified in the security domain 'extra-folder-options'. By default all users that have the xm.content.admin user role, will have the extra folder options on all content.
To allow editors to access the copy and move options on folders, a domain rule needs to be added which provides the 'folderctxmenus-editor' privilege to a specified set of folders. The following example will provide those options on the folderctxmenusdemo specific (documents, gallery and assets) folders.
definitions:
config:
/hippo:configuration/hippo:domains/folder-context-menus-demo-content:
jcr:primaryType: hipposys:domain
/content-document-domain:
jcr:primaryType: hipposys:domainrule
/content-and-descendants:
jcr:primaryType: hipposys:facetrule
hipposys:equals: true
hipposys:facet: jcr:path
hipposys:type: Reference
hipposys:value: /content/documents/folderctxmenusdemo
/content-gallery-domain:
jcr:primaryType: hipposys:domainrule
/content-and-descendants:
jcr:primaryType: hipposys:facetrule
hipposys:equals: true
hipposys:facet: jcr:path
hipposys:type: Reference
hipposys:value: /content/gallery/folderctxmenusdemo
/content-assets-domain:
jcr:primaryType: hipposys:domainrule
/content-and-descendants:
jcr:primaryType: hipposys:facetrule
hipposys:equals: true
hipposys:facet: jcr:path
hipposys:type: Reference
hipposys:value: /content/assets/folderctxmenusdemo
/editor:
jcr:primaryType: hipposys:authrole
hipposys:groups:
.meta:category: system
.meta:add-new-system-values: true
type: string
value: []
hipposys:role: folderctxmenus-editor
hipposys:userrole: xm.content.editor
hipposys:users:
.meta:category: system
.meta:add-new-system-values: true
type: string
value: []
For more information about Bloomreach Authorization model concepts, check out the Bloomreach documentation website.