0 Votes

Wiki source code of Script

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

Show last authors
1 {{groovy}}
2 def groupDocRef = "XWiki.XWikiAllGroup"
3 def groupClassName = "XWiki.XWikiGroups"
4
5 def mainGroupDoc = xwiki.getDocument(groupDocRef).getDocument()
6 def allUsers = xwiki.searchDocuments("where doc.fullName like 'XWiki.%' and doc.fullName != 'XWiki.XWikiAllGroup'")
7 def added = []
8
9 allUsers.each { userDocName ->
10 def alreadyMember = mainGroupDoc.getXObjects(groupClassName)?.any {
11 it?.getStringValue("member") == userDocName
12 }
13
14 if (!alreadyMember) {
15 def newObj = mainGroupDoc.newXObject(groupClassName)
16 newObj.setStringValue("member", userDocName)
17 added << userDocName
18 }
19 }
20
21 if (added) {
22 def wrappedDoc = xwiki.getDocument(mainGroupDoc.documentReference)
23 xwiki.saveDocument(wrappedDoc, "✅ Added users to XWikiAllGroup: ${added.join(', ')}")
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}}

XWiki AI Chat