How to remove user space permissions via SpacePermissionManagerInternal

Rafał Żydek May 24, 2022

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


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)

1 comment

Rafał Żydek May 24, 2022

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
Rolf Lader
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
September 21, 2023

Hi @Rafał Żydek 

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

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events