@Override
public void copyMailsFromGroupToGroup(PerunSession sess, Group fromGroup, Group toGroup) throws PerunException {
Vo fromVO = perun.getVosManagerBl().getVoById(registrarSession, fromGroup.getVoId());
if (!AuthzResolver.isAuthorized(sess, Role.GROUPADMIN, fromGroup) &&
!AuthzResolver.isAuthorized(sess, Role.VOADMIN, fromGroup) &&
!AuthzResolver.isAuthorized(sess, Role.TOPGROUPCREATOR, fromVO)) {
throw new PrivilegeException(sess, "copyMailsFromGroupToGroup");
}
if (!AuthzResolver.isAuthorized(sess, Role.GROUPADMIN, toGroup) &&
!AuthzResolver.isAuthorized(sess, Role.VOADMIN, toGroup)) {
throw new PrivilegeException(sess, "copyMailsFromGroupToGroup");
}
ApplicationForm formFrom = registrarManager.getFormForGroup(fromGroup);
ApplicationForm formTo = registrarManager.getFormForGroup(toGroup);
List<ApplicationMail> mails = getApplicationMails(sess, formFrom);
for (ApplicationMail mail : mails) {
try {
registrarManager.getMailManager().addMail(sess, formTo, mail);
} catch (DuplicateKeyException ex) {
log.info("[MAIL MANAGER] Mail notification of type {} skipped while copying (was already present).", mail.getMailType()+"/"+mail.getAppType());
}
}
}