You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -25,6 +25,15 @@ The package can be installed using the AEM Package Manager or directly from the
25
25
mvn -PautoInstallPackage install
26
26
```
27
27
28
+
## AEM6.x/Oak
29
+
30
+
The `oakindex-package` contains an optimized Oak index to cover all queries being issued by the Access Control Tool. To build (and optionally deploy) the content-package use the Maven profile oakindex. This package is only compatible with Oak and even there it is optional (as it will only speed up queries).
31
+
32
+
To use the package, run all commands with profile `oakindex`, e.g.
33
+
```
34
+
mvn clean install -Poakindex
35
+
```
36
+
28
37
# Configuration File Format
29
38
30
39
For better human readability and easy editing the ACL configuration files use the YAML format.
@@ -108,7 +117,7 @@ Overall format
108
117
actions: actions string
109
118
privileges: privileges string
110
119
repGlob: regex (optional, path restriction as regular expression)
Only ACEs for groups which are defined in the same configuration file can be installed! This ensures a consistency between the groups and their ACE definitions per configuration file.
@@ -233,6 +242,54 @@ This will create 12 groups:
233
242
* content-BRAND2-MKT2-reader
234
243
* content-BRAND2-MKT2-writer
235
244
245
+
### Loops derived from content structure (since 1.8.x)
246
+
247
+
For some use cases it is useful to dynamically derive the list of possible values from the content structure. FOR ... IN CHILDREN OF will loop over the children of the provided path (skipping 'jcr:content' nodes) and provide an object with the properties name, path, primaryType, jcr:content (a map of all properties of the respective node) and title (./jcr:content/jcr:title added to root map for convenience).
248
+
249
+
```
250
+
- FOR site IN CHILDREN OF /content/myPrj:
251
+
252
+
- content-reader-${site.name}:
253
+
- name: Content Reader ${site.title}
254
+
isMemberOf:
255
+
path: /home/groups/${site.name}
256
+
```
257
+
258
+
259
+
### Conditional entries (since 1.8.x)
260
+
261
+
When looping over content structures, entries can be applied conditionally using the "IF" keyword:
262
+
263
+
```
264
+
- FOR site IN CHILDREN OF /content/myPrj:
265
+
266
+
- content-reader-${site.name}:
267
+
- name: Content Reader ${site.title}
268
+
isMemberOf:
269
+
path: /home/groups/${site.name}
270
+
271
+
IF ${endsWith(site.name,'-master')}:
272
+
- content-reader-master-${site.name}:
273
+
- name: Master Content Reader ${site.title}
274
+
isMemberOf:
275
+
path: /home/groups/global
276
+
```
277
+
278
+
Expressions are evaluated using javax.el expression language. The following utility functions are made available to any EL expression used in yaml:
First the validation of the different configuration lines is performed based on regular expressions and gets applied while reading the file. Further validation consists of checking paths for existence as well as for double entries, checks for conflicting ACEs (e.g. allow and deny for same actions on same node), checks whether principals are existing under home. If an invalid parameter or aforementioned issue gets detected, the reading gets aborted and an appropriate error message gets append in the installation history and log.
0 commit comments