How to remove user space permissions via SpacePermissionManagerInternal
Asked by Rafa? ?ydek:

Yep, thats my problem. I want to move from SpacePermissionManager to SpacePermissionManagerInternal becaouse of deprication.

This is my scenario:  
-user create new space  
-script will remove creator from user space permission

This is my code how I want to do it, but have problems here:

\<code\>  
import com.atlassian.confluence.internal.security.SpacePermissionContext  
import com.atlassian.confluence.internal.security.SpacePermissionManagerInternal  
import com.atlassian.confluence.security.SpacePermission  
import com.atlassian.confluence.spaces.Space  
import com.atlassian.confluence.spaces.SpaceManager  
import com.atlassian.spring.container.ContainerManager

<br />

def context = SpacePermissionContext.createDefault()  
def spaceManager = ContainerManager.getComponent("spaceManager") as SpaceManager  
def spaceToClean = spaceManager.getSpace('88GGBBNNYY')  
def usersToDelete

spaceToClean.getPermissions().each {spacePerm-\>  
if( spacePerm.isUserPermission() ) { usersToDelete= spacePerm.getUserSubject() }  
}

SpacePermissionManagerInternal.removeAllUserPermissions( usersToDelete, context )  
\</code\>  
Problem?

groovy.lang.MissingMethodException: No signature of method: static com.atlassian.confluence.internal.security.SpacePermissionManagerInternal.removeAllUserPermissions() is applicable for argument types: (com.atlassian.confluence.user.ConfluenceUserImpl_$$_jvst242_7...) values: \[ConfluenceUserImpl{name='rafal.zydek@test.orangesharing.com', key=8a7d81847ffd62b9017ffe36f90e0000}, ...\] at Script357.run(Script357.groovy:18)


Answers:
author: Rolf Lader
body: Hi [@Rafa? ?ydek](/t5/user/viewprofilepage/user-id/1201030)   

I can't find the method 'spacePerm.getUserSubject()' in com.atlassian.confluence.security.SpacePermission!  

Have you found a solution for the problem in the meantime?  

Best regards, Rolf


author: Rafa? ?ydek
body: tried also that varation:

import com.atlassian.confluence.internal.security.SpacePermissionContext  
import com.atlassian.confluence.internal.security.SpacePermissionManagerInternal  
import com.atlassian.confluence.security.SpacePermission  
import com.atlassian.confluence.spaces.Space  
import com.atlassian.confluence.spaces.SpaceManager  
import com.atlassian.spring.container.ContainerManager  
import com.atlassian.sal.api.component.ComponentLocator

def context = SpacePermissionContext.createDefault()  
def spaceManager = ContainerManager.getComponent("spaceManager") as SpaceManager  
def spaceToClean = spaceManager.getSpace('88GGBBNNYY')  
def usersToDelete

spaceToClean.getPermissions().each {spacePerm-\>  
if( spacePerm.isUserPermission() ) { usersToDelete= spacePerm.getUserSubject() }  
}

def spacePermissionManager = ComponentLocator.getComponent(SpacePermissionManagerInternal)  
spacePermissionManager.removeAllUserPermissions( usersToDelete, context )  
Error:  
2022-05-24 13:33:55,113 WARN \[component.DefaultComponentLocator\]: More than one instance of com.atlassian.confluence.internal.security.SpacePermissionManagerInternal found but none of them has key spacePermissionManagerInternal 2022-05-24 13:33:55,115 ERROR \[common.UserScriptEndpoint\]: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 2022-05-24 13:33:55,115 ERROR \[common.UserScriptEndpoint\]: Script console script failed: java.lang.NullPointerException: Cannot invoke method removeAllUserPermissions() on null object


Tags: addon-com.onresolve.jira.groovy.groovyrunner

confluence-server

groovy

scriptrunner

server