0 Votes

Wiki source code of Script

Version 5.1 by Ryan C on 2025/05/12 23:35

Hide last authors
Ryan C 1.1 1 {{groovy}}
Ryan C 5.1 2 def groupDocRef = "XWiki.XWikiAllGroup"
3 def groupClassName = "XWiki.XWikiGroups"
Ryan C 1.1 4
Ryan C 4.1 5 def mainGroupDoc = xwiki.getDocument(groupDocRef).getDocument()
Ryan C 1.1 6 def allUsers = xwiki.searchDocuments("where doc.fullName like 'XWiki.%' and doc.fullName != 'XWiki.XWikiAllGroup'")
7 def added = []
8
9 allUsers.each { userDocName ->
Ryan C 5.1 10 def alreadyMember = mainGroupDoc.getXObjects(groupClassName)?.any {
Ryan C 3.1 11 it?.getStringValue("member") == userDocName
12 }
Ryan C 1.1 13
14 if (!alreadyMember) {
Ryan C 5.1 15 def newObj = mainGroupDoc.newXObject(groupClassName)
Ryan C 1.1 16 newObj.setStringValue("member", userDocName)
17 added << userDocName
18 }
19 }
20
21 if (added) {
Ryan C 5.1 22 def wrappedDoc = xwiki.getDocument(mainGroupDoc.documentReference)
23 xwiki.saveDocument(wrappedDoc, "✅ Added users to XWikiAllGroup: ${added.join(', ')}")
Ryan C 1.1 24 println "✅ Added users to main wiki: ${added.join(', ')}"
25 } else {
26 println "✅ All users are already members of the main wiki."
27 }
28 {{/groovy}}
29