/*
* 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)
}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.