Index: MgnlMailFactory.java =================================================================== --- MgnlMailFactory.java (revision 7661) +++ MgnlMailFactory.java (working copy) @@ -307,16 +307,47 @@ ret.append(getUserMail(userName)); } else if (userName.startsWith(MailConstants.PREFIX_GROUP)) { - + userName = StringUtils.removeStart(userName, MailConstants.PREFIX_GROUP); + try { + HierarchyManager hm = ContentRepository.getHierarchyManager(ContentRepository.USERS); + Collection users = hm.getRoot().getChildren(ItemType.USER); + Iterator iter = users.iterator(); + while(iter.hasNext()){ + Content userNode = ((Content) iter.next()); + MgnlUserManager manager = Security.getUserManager(); + MgnlUser user = (MgnlUser) manager.getUser(userNode.getName()); + if (user.getGroups().contains(userName)){ + ret.append(getUserMail(user.getName())); + } + } + } + catch (Exception e) { + log.error("can not get user email info."); + } } else if (userName.startsWith(MailConstants.PREFIX_ROLE)) { - - } + userName = StringUtils.removeStart(userName, MailConstants.PREFIX_ROLE); + try { + HierarchyManager hm = ContentRepository.getHierarchyManager(ContentRepository.USERS); + Collection users = hm.getRoot().getChildren(ItemType.USER); + Iterator iter = users.iterator(); + while(iter.hasNext()){ + Content userNode = ((Content) iter.next()); + MgnlUserManager manager = Security.getUserManager(); + MgnlUser user = (MgnlUser) manager.getUser(userNode.getName()); + if (user.getRoles().contains(userName)){ + ret.append(getUserMail(user.getName())); + } + } + } + catch (Exception e) { + log.error("can not get user email info."); + } + } else { // none of the above, just add the mail to the list ret.append(userName); } - } return ret.toString(); }