Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,329,650
Community Members
 
Community Events
168
Community Groups

Disable Tab based on security group script disabling for everyone

Hi all

 

I would like to disable a tab for everyone but a specific security group but for some reason it's not seeing my condition and just disabling it for everyone

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.roles.ProjectRoleManager

// Get the current user
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def groupManager = ComponentAccessor.getGroupManager()

if (ComponentAccessor.getGroupManager().getGroupsForUser(currentUser)?.find { it.name != "Jira Service Desk Time Log" })
{
disableTab(1)
}

 

1 comment

Hi @Steve Letch ,

I not sure that condition is well.

it.name != "Jira Service Desk Time Log"

If user have a lots group it return true for all groups!="Jira.."

Try some like next:

if (!ComponentAccessor.getGroupManager().getGroupsForUser(currentUser)?.find { it.name == "Jira Service Desk Time Log" })


B.R.

See I want to hide it from all users except that group so I need it to be a != unless you can think of a better way

May I clarify?

someA = [a,b,c,d,f]

someB = [a,b,c,f]

someC = [a,b]

I suppose we want exclude 'd'. We should return 'true' for someB and someC.

1. return true only for someA:

if ( some.find{ it == 'd'} )
someA - true (can find 'd')

someB - false (cannot find 'd')

someC - false(cannot find 'd')

2. Inverse result:

if ( ! some.find{ it == 'd'} )
someA - false (can find 'd')

someB - true (cannot find 'd')

someC - true (cannot find 'd')

B.R.

Comment

Log in or Sign up to comment