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

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

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

How activate Group via JIRA 7 Java API?

When trying to create new Group by writing

Group ng = groupMgr.createGroup("some_group");crowdService.addGroup(ng);

I get "Group already exists in the remote directory".

When using ProjectRoleService to add this Group to a ProjectRole I get "We ca't find 'some_group' in any accessible user directory. Check they're still active and available, and try again."

So I guess I just need to activate this group. How to do it via Java API

1 answer

0 votes

A group might exist in a directory without necessarily being exposed to the applications.

One of my current projects involves a client with 10,000 users and 5,000 groups in their AD, but JIRA only sees 400 users and 50 groups because it is limited to one part of the directory.

Could that be the case?

That is what I think it is. One group (from problematic groups) was created (became available in JIRA application) after a user from that group logged in. Probably same would happen with all the groups (I am having trouble creating) if appropriate user would login, howerver I want these groups to be available in application before tha thappens.

New groups that are exposed to the application should appear on the next synchronisation, as well as when a user logs in and hence uses the group.

How do I expose them to the applications using Java API?

Trigger a synchronisation.

How? Like this?

 

DirectoryManager directoryManager = ComponentAccessor.getComponent(DirectoryManager.class);
for( Directory directory : directoryManager.findAllDirectories() ){
try{
if( directoryManager.isSynchronisable( directory.getId() )
&& !directoryManager.isSynchronising( directory.getId() )){
directoryManager.synchroniseCache( directory.getId(), SynchronisationMode.INCREMENTAL );
}
} catch( Exception e ){
log.error("", e);
}
}

In the logs of the application I am working with I see http://prntscr.com/ga1rth even without the code I wrote above. So I guess synchronisation is happening (it is a scheduled repeating job).

Suggest an answer

Log in or Sign up to answer
TAGS

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