正如标题所述,我希望能够迭代我的Confluence系统并找到某个用户组所在的所有空间。我可以使用下面的代码在单个空间中找到一个用户组,但我似乎找不到如何在所有空间中做到这一点的答案。
import com.atlassian.confluence.spaces.SpaceManager
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.confluence.security.SpacePermissionManager
import com.atlassian.confluence.security.SpacePermission
import com.atlassian.user.GroupManager
import com.atlassian.confluence.core.ContentPermissionManager
import com.atlassian.confluence.internal.security.SpacePermissionContext
def spaceManager = ComponentLocator.getComponent(SpaceManager)
def spacePermissionManager = ComponentLocator.getComponent(SpacePermissionManager)
def groupManager = ComponentLocator.getComponent(GroupManager)
def targetSpace = spaceManager.getSpace("NameOfSpace")
def targetGroup = groupManager.getGroup("UserGroup")
if (spacePermissionManager.getGroupsWithPermissions(targetSpace).contains(targetGroup)) {
//do something (in my case, remove User Group)
}我尝试使用"def allSpaces = spaceManager.getAllSpaces()“,并将其替换到getGroupsWithPermissions()方法中,但没有成功。
谢谢!
发布于 2021-02-21 22:38:44
你试过SpacePermissionManager#getAllPermissionsForGroup吗?我还没有在Groovy中测试过这一点,但至少在Java中,它会返回一个附加到用户组的空间权限列表。
并不是所有的SpacePermissions都会附加到实际的空格中,所以您很可能需要遍历列表并过滤getSpace()不为null的结果。
https://stackoverflow.com/questions/65123579
复制相似问题