portletPreferenceList.add(externalPortletPreference);
}
Collections.sort(portletPreferenceList, ExternalPortletPreferenceNameComparator.INSTANCE);
final List<String> categoryList = rep.getCategories();
final IGroupMember gm = GroupService.getGroupMember(def.getPortletDefinitionId().getStringId(), IPortletDefinition.class);
@SuppressWarnings("unchecked")
final Iterator<IEntityGroup> categories = GroupService.getCompositeGroupService().findContainingGroups(gm);
while (categories.hasNext()) {
IEntityGroup category = categories.next();
categoryList.add(category.getName());
}
Collections.sort(categoryList);
final List<String> groupList = rep.getGroups();
final List<String> userList = rep.getUsers();
final AuthorizationService authService = org.jasig.portal.services.AuthorizationService.instance();
final IPermissionManager pm = authService.newPermissionManager("UP_PORTLET_SUBSCRIBE");
final String portletTargetId = PermissionHelper.permissionTargetIdForPortletDefinition(def);
final IAuthorizationPrincipal[] principals = pm.getAuthorizedPrincipals("SUBSCRIBE", portletTargetId);
for (IAuthorizationPrincipal principal : principals) {
IGroupMember member = authService.getGroupMember(principal);
if (member.isGroup()) {
final EntityNameFinderService entityNameFinderService = EntityNameFinderService.instance();
final IEntityNameFinder nameFinder = entityNameFinderService.getNameFinder(member.getType());
try {
groupList.add(nameFinder.getName(member.getKey()));
}
catch (Exception e) {
throw new RuntimeException("Could not find group name for entity: " + member.getKey(), e);
}
} else {
userList.add(member.getKey());
}
}
Collections.sort(groupList);
Collections.sort(userList);