Last active
March 8, 2016 17:18
-
-
Save badvision/64ba0db6f670d533bfcc to your computer and use it in GitHub Desktop.
AEM Group membership extractor, use with buildGroupMatrix to produce a spreadsheet of all users and what groups they're in
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Step 1: retrieve group list via http://AEMINSTANCE:4502/home/groups.xml and save as group.xml | |
// Step 2: modify this script (find/replace AEMINSTANCE:4502 with your AEM host/port, also USERNAME and PASSWORD) | |
// Stpe 3: run this script in the same directory as group.xml | |
// Step 4: make the output groups_retrieve.sh executable and run it | |
// Step 5: use the buildGroupMatrix.groovy script to render the spreadsheet | |
def groupXml = 'groups.xml' as File | |
def outScript = 'groups_retrieve.sh' as File | |
def allGroups = new XmlSlurper().parseText(groupXml.getText()) | |
pathBuilder = {node, path="" -> | |
node.name() == "groups" ? path.substring(0,path.length()-1) : pathBuilder.trampoline(node.parent(), node.name() + "/" + path) | |
}.trampoline() | |
allGroups.'**'.findAll{node -> | |
node["@jcr:primaryType"]=="rep:Group" && // Note: You can add/change filtering logic to leave out groups you don't want to track here | |
!node.name().startsWith("mac-default") && | |
!node.name().startsWith("projects-") | |
}.each{outScript << "curl -u USERNAME:PASSWORD http://AEMINSTANCE:4502/home/groups/${pathBuilder(it)}.rw.json?props=* > group_${it.name()}.json\n"} | |
"" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment