Example scripts
To homepage
Confluence

Remove group access from all spaces
App in script

ScriptRunner For Confluence
by Adaptavist
Compatibility

Confluence
Language |
groovy
import com.atlassian.confluence.rest.clientv1.model.GroupArrayWithLinks
import com.atlassian.confluence.rest.clientv2.model.*
def inputGroupName = "INPUT_GROUP_NAME"
String username = "USERNAME"
String token = "BASIC_AUTH_TOKEN"
def groups = get('/wiki/rest/api/group').asObject(GroupArrayWithLinks).body
if (!groups) {
throw new RuntimeException("Failed to fetch groups.")
}
def groupId = groups.results.find { it.name == inputGroupName }?.id ?:
logger.error("Group $inputGroupName not exist")
def removedSpaceKeys = []
def spaces = getAllItems("/wiki/api/v2/spaces", MultiEntityResultSpace)
spaces.each { Space space ->
def permissions = getAllItems("/wiki/api/v2/spaces/${space.id}/permissions", MultiEntityResultSpacePermission)
permissions.each { SpacePermission permission ->
if (permission.principal.id == groupId) {
def response = delete("${baseUrl}/rest/api/space/${space.key}/permission/${permission.id}")
.basicAuth(username, token)
.asObject(Map)
if (response.status != 204) {
logger.warn("Failed to delete group from space: ${space.key}")
} else {
logger.info("Group removed from space: ${space.key}")
removedSpaceKeys << space.key
}
}
}
}
removedSpaceKeys
def getAllItems(String nextUrl, Class clazz) {
def items = []
def url = nextUrl
while (url) {
def response = get(url).asObject(clazz).body
items.addAll(response["results"])
url = response["_links"]["next"]
}
items
}
Having an issue with this script?
Report it here