Example scripts
To homepage
Confluence

Copy Users from Space Permissions to a Local Group
App in script

ScriptRunner For Confluence
by Adaptavist
Compatibility

Confluence (7.15 - 8.6)

ScriptRunner For Confluence (7.10.0)
Language |
groovy
import com.atlassian.confluence.security.SpacePermission
import com.atlassian.confluence.spaces.Space
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.crowd.embedded.api.Group
import com.atlassian.user.GroupManager
import com.atlassian.user.User
import com.onresolve.scriptrunner.parameters.annotation.GroupPicker
import com.onresolve.scriptrunner.parameters.annotation.ShortTextInput
import com.onresolve.scriptrunner.parameters.annotation.SpacePicker
@GroupPicker(label = 'Group', description = 'Select the group to add users to')
Group selectedGroup
assert selectedGroup
@SpacePicker(label = 'Space', description = 'Pick a space')
Space sourceSpace
assert sourceSpace
@ShortTextInput(label = 'Permission Type', description = 'Add users with this permission to the group (eg. VIEWSPACE, COMMENT, EDITSPACE)')
String permissionType
assert permissionType
def groupManager = ComponentLocator.getComponent(GroupManager)
def group = groupManager.getGroup(selectedGroup.name)
//def spacePermissionManager = ComponentLocator.getComponent(DefaultSpacePermissionManager)
def spacePermissions = sourceSpace.getPermissions()
List<User> usersWithIndividualPermissions = []
// Get each user with individual permissions of a specific type
spacePermissions.each { permission ->
if (permission.getUserSubject() && permission.getType() == permissionType) {
usersWithIndividualPermissions.add(permission.getUserSubject())
}
}
// Add each user to the specified group
usersWithIndividualPermissions.each { user ->
groupManager.addMembership(group, user)
}
// Add the new group and permissions to the space
sourceSpace.addPermission(new SpacePermission(permissionType, sourceSpace, group.name))
Having an issue with this script?
Report it here