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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.