가이드 제목은 [도구명] [내용]-하기 형태(ex Bitbucket Cloud 저장소 생성하기)로 입력한다.
이 문서에 대한 요약 /개요를 입력한다. (구글에서 검색되었을때 표시되는 문장)
이 문서는 Confluence - Scriptrunner 이용하여 공간 권한 제거하기 가이드를 공유하기 위해 작성되었다.
가이드에 사용되는 도구 정보를 입력한다.
|
첨부한 이미지 너비는 800px 을 넘기지 않는다.
import com.atlassian.confluence.security.SpacePermissionManager import com.atlassian.confluence.spaces.SpaceManager import com.atlassian.sal.api.component.ComponentLocator import com.atlassian.confluence.internal.security.SpacePermissionContext import com.onresolve.scriptrunner.parameters.annotation.* import com.onresolve.scriptrunner.parameters.annotation.meta.* import com.onresolve.scriptrunner.parameters.* @Select( label = "권한", description = "삭제 할 권한을 선택하세요", options = [ @Option(label = "보기", value = "VIEWSPACE"), @Option(label = "본인의 콘텐츠 삭제", value = "REMOVEOWNCONTENT"), @Option(label = "페이지 추가", value = "EDITSPACE"), @Option(label = "페이지 삭제", value = "REMOVEPAGE"), @Option(label = "블로그 추가", value = "EDITBLOG"), @Option(label = "블로그 삭제", value = "REMOVEBLOG"), @Option(label = "첨부파일 추가", value = "CREATEATTACHMENT"), @Option(label = "첨부파일 삭제", value = "REMOVEATTACHMENT"), @Option(label = "댓글 추가", value = "COMMENT"), @Option(label = "댓글 삭제", value = "REMOVECOMMENT"), @Option(label = "제한 추가/삭제", value = "SETPAGEPERMISSIONS"), @Option(label = "메일 삭제", value = "REMOVEMAIL"), @Option(label = "내보내기", value = "EXPORTSPACE"), @Option(label = "공간 관리", value = "SETSPACEPERMISSIONS"), ] ) String deletePermission @Checkbox(label = "확인", description = "체크 후 Run 시 해당 권한이 제거") Boolean checkDelete def spacePermissionManager = ComponentLocator.getComponent(SpacePermissionManager) def spaceManager = ComponentLocator.getComponent(SpaceManager) SpacePermissionContext spaceContext = SpacePermissionContext.createDefault() def spacePermissions = [] def spaces = spaceManager.getAllSpaces() def permissionsToRemove = [] spaces.each{ space -> //log.warn(space.getName()) //log.warn(space.getPermissions()) spacePermissions = space.getPermissions() spacePermissions.each{ permission -> if (permission.getType() == deletePermission){ //log.warn(permission.toString()) permissionsToRemove.addAll(permission) } } } if(checkDelete){ log.warn("check " + deletePermission) permissionsToRemove.each { permission -> spacePermissionManager.removePermission(permission, spaceContext) } } List<String> result = [] for(int i = 0; i < permissionsToRemove.size();i++){ ArrayList permissons = (permissionsToRemove[i].toString()).replaceAll("\\[","").replaceAll("]","").split(",") assert permissons.class == ArrayList String spaceid = permissons[1] String spaceName = spaceManager.getSpace(spaceid as Long).getName() log.warn("공간명: " + spaceName) log.warn("삭제되는 권한: " + deletePermission) String temp = "" temp += "공간명: " + spaceName + " 삭제되는 권한: " + deletePermission for(int j = 2; j < permissons.size();j++){ if(permissons[j] != "null"){ log.warn("유저: " + permissons[j].toString()) temp += " 유저: " + permissons[j].toString() } } result.add(temp) log.warn("=================================") } result |