Hi!
I am on the hunt for a way to add some dashboards to my users based on which group they are connected to. The reason for this is:
And that is why I need to find a way to add these dashboards to the users and since we have a lot of users I would prefer not to do this manually one by one...
I would also like to only ADD the dashboards, if they already have other favourite dashboards they should not be deleted as favourites. I found this script in the following link JRASERVER-15841:
import com.atlassian.jira.ComponentManager import com.atlassian.jira.portal.PortalPage import com.atlassian.jira.portal.PortalPageManager import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.user.ApplicationUser import com.atlassian.jira.favourites.FavouritesManager import org.apache.log4j.Logger import org.apache.log4j.Level def log = Logger.getLogger("") log.setLevel(Level.DEBUG) def portalPageIds = [10407,10404] def groupNames = ['teq_jirasd_administrators'] def groupManager = ComponentAccessor.getGroupManager() ComponentManager componentManager = ComponentManager.getInstance() PortalPageManager portalPageManager = (PortalPageManager) componentManager.getComponentInstanceOfType(PortalPageManager.class) FavouritesManager favouritesManager = (FavouritesManager) componentManager.getComponentInstanceOfType(FavouritesManager.class) for (String groupName: groupNames) { def grpUserList = groupManager.getUsersInGroup(groupName) for (ApplicationUser user:grpUserList){ for (Long portalPageId: portalPageIds) { PortalPage portalPage = portalPageManager.getPortalPageById(portalPageId) try{ favouritesManager.addFavourite(user, portalPage) log.info("Adding portal " + portalPageId.toString() + " to user: " + user) } catch (Exception ex){ log.warn("Failed Adding portal " + portalPageId.toString() + " to user: " + user + "\n" + ex) } //catch } //for portalID } //for group users } //for groups
However I get the same error as the user in the comment:
The script could not be compiled:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script162.groovy: 25: expecting '{', found 'Unknown' @ line 25, column 1. Unknown macro: { favouritesManager.addFavourite(user, portalPage) log.info("Adding portal " + portalPageId.toString() + " to user}
Perhaps anyone has already done something similar and are able to help me out on this? I would be very grateful!
Ooof, that is an old code.
Here's updated one that seems to work:
import com.atlassian.jira.security.groups.GroupManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.portal.PortalPage
import com.atlassian.jira.portal.PortalPageManager
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.favourites.FavouritesManager
Long[] portalPageIds = new Long[]{23508L, 81598L}
String[] groupNames = new String[]{"test-group"}
GroupManager groupManager = ComponentAccessor.getComponent(GroupManager)
PortalPageManager portalPageManager = ComponentAccessor.getComponent(PortalPageManager)
FavouritesManager favouritesManager = ComponentAccessor.getComponent(FavouritesManager)
StringBuilder stringBuilder = new StringBuilder()
String LF = "<br>"
for (String groupName : groupNames) {
for (ApplicationUser user : groupManager.getUsersInGroup(groupName)) {
for (Long portalPageId : portalPageIds) {
PortalPage portalPage = portalPageManager.getPortalPageById(portalPageId)
if (portalPage != null) {
try {
favouritesManager.addFavourite(user, portalPage)
stringBuilder.append("Adding " + portalPage.getName() + " (" + portalPageId + ") to user " + user.getUsername()).append(LF)
} catch (Exception e) {
stringBuilder.append("<b>ERROR:</b> Could not add " + portalPage.getName() + " (" + portalPageId + ") to user " + user.getUsername() + ": " + e.toString()).append(LF)
}
}
}
}
}
return stringBuilder.toString()
Thank you Radek!
This turned out great and will help me a lot!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.