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

Disable Tab based on security group script disabling for everyone

Steve Letch July 12, 2019

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

Andrew
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 12, 2019

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.

Steve Letch July 12, 2019

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

Andrew
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 14, 2019

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
TAGS
AUG Leaders

Atlassian Community Events