0 Votes

Changes for page Script

Last modified by Ryan C on 2025/05/13 16:08

From version 12.1
edited by Ryan C
on 2025/05/13 16:07
Change comment: There is no comment for this version
To version 13.1
edited by Ryan C
on 2025/05/13 16:08
Change comment: Changed the author of the page to fix programming rights

Summary

Details

Page properties
Content
... ... @@ -1,7 +1,5 @@
1 1  {{groovy}}
2 2  import org.xwiki.model.reference.DocumentReference
3 -import org.xwiki.model.reference.EntityReference
4 -import org.xwiki.model.reference.EntityType
5 5  
6 6  // ------------------------------------------------------------------
7 7  // 1. References
... ... @@ -12,12 +12,12 @@
12 12  // ------------------------------------------------------------------
13 13  // 2. Load (or create) the XWikiAllGroup page
14 14  // ------------------------------------------------------------------
15 -def groupDocAPI = xwiki.getDocument(groupDocRef) // Document API wrapper
16 -def groupDoc = groupDocAPI.getDocument() // Raw XWikiDocument
13 +def groupDocAPI = xwiki.getDocument(groupDocRef) // Document API wrapper
14 +def groupDoc = groupDocAPI.getDocument() // Raw XWikiDocument
17 17  
18 18  if (groupDoc.isNew()) {
19 19   xwiki.saveDocument(groupDocAPI, 'Created XWikiAllGroup')
20 - println ' Created XWiki.XWikiAllGroup'
18 + println " Created XWiki.XWikiAllGroup"
21 21  }
22 22  
23 23  // ------------------------------------------------------------------
... ... @@ -39,33 +39,14 @@
39 39   }
40 40  
41 41   if (!alreadyMember) {
42 - // Try different methods to create the XObject.
43 - def obj = null
40 + // Try to create XObject using the simplest method first
44 44   try {
45 - // Method 1: Use xcontext
46 - def context = xcontext ?: contextProvider.get()
47 - obj = groupDoc.newXObject(groupClassRef, context)
48 - } catch (Exception e1) {
49 - try {
50 - // Method 2: Use EntityReference
51 - obj = groupDoc.newXObject(
52 - new EntityReference(
53 - 'XWikiGroups',
54 - EntityType.DOCUMENT,
55 - new EntityReference('XWiki', EntityType.SPACE)
56 - )
57 - )
58 - } catch (Exception e2) {
59 - println "Failed to create XObject using either method:"
60 - println "Method 1 Exception: ${e1.getMessage()}"
61 - println "Method 2 Exception: ${e2.getMessage()}"
62 - return // Skip this user if we can't create the object
63 - }
64 - }
65 -
66 - if (obj != null) {
42 + // Use the string class name instead of the DocumentReference
43 + def obj = groupDoc.newXObject("XWiki.XWikiGroups", xcontext)
67 67   obj.setStringValue('member', userDocName)
68 68   added << userDocName
46 + } catch (Exception e) {
47 + println "Could not add user ${userDocName}: ${e.message}"
69 69   }
70 70   }
71 71  }
... ... @@ -77,7 +77,7 @@
77 77   xwiki.saveDocument(groupDocAPI, "Added users: ${added.join(', ')}")
78 78   println " Added users to main wiki group: ${added.join(', ')}"
79 79  } else {
80 - println ' All users are already members of XWikiAllGroup'
59 + println " All users are already members of XWikiAllGroup"
81 81  }
82 82  {{/groovy}}
83 83  

XWiki AI Chat