Skip to content

Commit e8db473

Browse files
Doc
1 parent 91a3058 commit e8db473

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

README.md

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
</picture>
2020
</p>
2121

22-
ACM (AEM Content Manager) is a powerful tool designed to streamline your workflow and enhance productivity with an intuitive interface and robust features. It automates bulk content modifications and permission management, making it an ideal solution for tasks like content migration and managing permissions at scale. ACM provides an IDE-like experience with code completion, auto-import, and on-the-fly compilation.
22+
**Manage permissions & content updates as-a-code.**
23+
24+
ACM streamlines workflows and boosts productivity with an intuitive interface and robust features. It automates bulk content and permission changes, making it ideal for content migration and large-scale permission management. ACM offers an IDE-like experience with code completion, auto-import, and on-the-fly compilation.
2325

2426
It works seamlessly across AEM on-premise, AMS, and AEMaaCS environments.
2527

@@ -233,10 +235,12 @@ The `describeRun()` method is used to define the arguments that can be passed to
233235
The `args` service is used to define the arguments that can be passed to the script.
234236
When the script is executed, the arguments are passed to the `doRun()` method.
235237

236-
There are many built-in argument types to use handling different types of data like string, boolean, number, date, etc. Just check `arguments` [service](https://github.com/wttech/acm/blob/main/core/src/main/java/dev/vml/es/acm/core/code/Arguments.java) for more details.
238+
There are many built-in argument types to use handling different types of data like string, boolean, number, date, file, etc. Just check `arguments` [service](https://github.com/wttech/acm/blob/main/core/src/main/java/dev/vml/es/acm/core/code/Arguments.java) for more details.
237239

238240
<img src="docs/screenshot-content-script-arguments.png" width="720" alt="ACM Console">
239241

242+
Be inspired by reviewing examples like [page thumbnail script](https://github.com/wttech/acm/blob/main/ui.content.example/src/main/content/jcr_root/conf/acm/settings/script/manual/example/ACME-202_page-thumbnail.groovy) which allows user to upload a thumbnail image and set it as a page thumbnail with only a few clicks and a few lines of code.
243+
240244
#### ACL example
241245

242246
The following example demonstrates how to create a user and a group, assign permissions, and add members to the group.
@@ -248,28 +252,27 @@ boolean canRun() {
248252
249253
void doRun() {
250254
out.fromAclLogs()
251-
255+
252256
println "ACL setup started"
253-
257+
254258
def acmeService = acl.createUser { id = "acme.service"; systemUser(); skipIfExists() }
255259
acmeService.with {
256-
purge()
257-
allow { path = "/content"; permissions = ["jcr:read", "jcr:write"] }
260+
// purge()
261+
allow { path = "/content"; permissions = ["jcr:read", "jcr:write"] }
258262
}
259-
260-
acl.createUser { id = "john.doe"; fullName = "John Doe"; password = "ilovekittens"; skipIfExists() }
261-
def johnDoe = acl.getUser { id = "john.doe" }
263+
264+
def johnDoe = acl.createUser { id = "john.doe"; fullName = "John Doe"; password = "ilovekittens"; skipIfExists() }
262265
johnDoe?.with {
263-
purge()
264-
allow("/content", ["jcr:read"])
266+
// purge()
267+
allow("/content", ["jcr:read"])
265268
}
266-
269+
267270
acl.createGroup { id = "test.group" }.with {
268-
removeAllMembers()
269-
addMember(acmeService)
270-
addMember(johnDoe)
271+
// removeAllMembers()
272+
addMember(acmeService)
273+
addMember(johnDoe)
271274
}
272-
275+
273276
println "ACL setup done"
274277
}
275278
```

0 commit comments

Comments
 (0)