Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Remove user permissions from Confluence space

Hello,

 

Could someone help me with ScriptRunner REST endpoint running on Confluence Server 7.2.0?

 

I just need to remove user permissions from space only. For example, I pass username and space key, and the script removes all permissions. I've been trying to use SpaceManager, SpaceManagerInternal but my context is always null. 

 

def space = spaceManager.getSpace(spaceKey)

SpacePermissionContext context = SpacePermissionContext.builder().build()

spacePermissionManager.removeAllUserPermissions(user,context)

 

The builder().build() doesn't work, and createDefault() as well.

How do I use this context in the right way?

 

Thanks.

1 answer

Hi Tomislav! 

I was able to get this working with the snippet linked here

For reference, I am using Confluence 7.8 with ScriptRunner 6.14.0 installed. 

Please let me know if this works for you! 

Thanks,
Lee

I know it's a bit delayed, but could you please put the code in your answer here?  Unfortunately a lot of sites like Bitbucket are blocked by the company I work for.

Thanks!

Sure thing! Here's the script: 

/*
 * This script provides an example of how you can remove all space permissions from a single user
 
 * All right, title and interest in this code snippet shall remain the exclusive intellectual property of Adaptavist Group Ltd and its affiliates. Customers with a valid ScriptRunner 
 * license shall be granted a  non-exclusive, non-transferable, freely revocable right to use this code snippet only within their own instance of Atlassian products. This licensing notice cannot be removed
 * or amended and must be included in any circumstances where the code snippet is shared by You or a third party." 
*/

import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.confluence.internal.security.SpacePermissionContext
import com.atlassian.confluence.security.SpacePermissionManager
import com.atlassian.confluence.user.UserAccessor


def spacePermissionManager = ComponentLocator.getComponent(SpacePermissionManager)
SpacePermissionContext context = SpacePermissionContext.createDefault()

def userAccessor = ComponentLocator.getComponent(UserAccessor)
def user = userAccessor.getUserByName("<username>")

spacePermissionManager.removeAllUserPermissions(user, context)

The removeAllUserPermissions method is deprecated now. 

Do you happen to know if we're able to use the SpacePermissionManagerInternal class that the documentation says replaces the old method?

I think I read somewhere that Internal classes are only for Atlassian use, but I could very well be wrong.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Confluence Cloud

🎨 Add some visual life to your templates

Hi Atlassian Community, My name is Avni Barman, and I am a Product Manager on the Confluence Cloud team. Based on feedback from you, we are giving admins more power to create templates that a...

177 views 3 8
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you