Snippets

Adaptavist Copy Space Permissions

Created by Lee Wonnacott

File snippet.txt Added

  • Ignore whitespace
  • Hide word diff
+/*
+ * This script provides an example of how you can copy the individual user space permissions from one space to another within your Confluence instance
+ 
+ * All right, title and interest in this code snippet shall remain the exclusive intellectual property of Adaptavist Group Ltd and its affiliates. Customers with a valid ScriptRunner 
+ * license shall be granted a  non-exclusive, non-transferable, freely revocable right to use this code snippet only within their own instance of Atlassian products. This licensing notice cannot be removed
+ * or amended and must be included in any circumstances where the code snippet is shared by You or a third party." 
+*/
+
+import com.atlassian.confluence.security.SpacePermissionManager
+import com.atlassian.confluence.labels.SpaceLabelManager
+import com.atlassian.confluence.spaces.SpaceManager
+import com.atlassian.sal.api.component.ComponentLocator
+import com.atlassian.confluence.internal.security.SpacePermissionContext
+import com.atlassian.confluence.security.SpacePermission
+
+
+def spacePermissionManager = ComponentLocator.getComponent(SpacePermissionManager)
+def spaceManager = ComponentLocator.getComponent(SpaceManager)
+def spaceLabelManager = ComponentLocator.getComponent(SpaceLabelManager)
+
+SpacePermissionContext spaceContext = SpacePermissionContext.createDefault()
+
+
+def spacePermissions = []
+def sourceSpace = spaceManager.getSpace("<space_key>")
+
+def targetSpace = spaceManager.getSpace("<space_key>")
+
+def permissionsToCopy = []
+
+spacePermissions = sourceSpace.getPermissions()
+
+spacePermissions.each{ permission ->
+    if (permission.getUserSubject()){
+        permissionsToCopy.add(permission)
+    }  
+}
+
+def spacePermissionToSave 
+permissionsToCopy.each{ permission ->
+	spacePermissionToSave = SpacePermission.createUserSpacePermission(permission.getType(), targetSpace,permission.getUserSubject())
+  	spacePermissionManager.savePermission(spacePermissionToSave)
+}
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.