0 Votes

Wiki source code of Script

Version 1.1 by Ryan C on 2025/05/12 18:20

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

XWiki AI Chat