이 문서는 Confluence - Scriptrunner 이용하여 공간 권한 제거하기 가이드를 공유하기 위해 작성되었다.
도구명 | Scriptrunner, Confluence |
---|---|
버전 | 6.10(Scriptrunner) |
비고 |
Confluence - Scriptrunner 이용하여 공간 권한 제거하기
Scriptrunner Console 들어가기
- 톱니바퀴 → Scriptrunner → Console
- 해당 스크립트 붙여넣기
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
- 제거 할 권한과 확인 체크박스 체크 시 해당 스크립트 실행
단순 확인 할 경우 체크박스 해제