Skip to content
Snippets Groups Projects
Commit b0e3369a authored by srosse's avatar srosse
Browse files

OO-2621: update the messages author and modifier if someone is removed the async way

parent 03dbc003
No related branches found
No related tags found
No related merge requests found
...@@ -24,11 +24,13 @@ import java.util.Date; ...@@ -24,11 +24,13 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import org.olat.basesecurity.IdentityRef;
import org.olat.commons.info.model.InfoMessage; import org.olat.commons.info.model.InfoMessage;
import org.olat.core.id.Identity; import org.olat.core.id.Identity;
import org.olat.core.id.OLATResourceable; import org.olat.core.id.OLATResourceable;
import org.olat.core.util.resource.OresHelper; import org.olat.core.util.resource.OresHelper;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
import org.olat.group.BusinessGroupRef;
/** /**
* *
...@@ -62,7 +64,7 @@ public interface InfoMessageFrontendManager { ...@@ -62,7 +64,7 @@ public interface InfoMessageFrontendManager {
public void deleteInfoMessage(InfoMessage infoMessage); public void deleteInfoMessage(InfoMessage infoMessage);
public void updateInfoMessagesOfIdentity(BusinessGroup businessGroup, Identity identity); public void updateInfoMessagesOfIdentity(BusinessGroupRef businessGroup, IdentityRef identity);
public void removeInfoMessagesAndSubscriptionContext(BusinessGroup group); public void removeInfoMessagesAndSubscriptionContext(BusinessGroup group);
......
...@@ -26,6 +26,7 @@ import java.util.List; ...@@ -26,6 +26,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import org.olat.basesecurity.IdentityRef;
import org.olat.commons.info.model.InfoMessage; import org.olat.commons.info.model.InfoMessage;
import org.olat.commons.info.model.InfoMessageImpl; import org.olat.commons.info.model.InfoMessageImpl;
import org.olat.commons.info.notification.InfoSubscriptionManager; import org.olat.commons.info.notification.InfoSubscriptionManager;
...@@ -44,6 +45,7 @@ import org.olat.core.util.mail.MailContextImpl; ...@@ -44,6 +45,7 @@ import org.olat.core.util.mail.MailContextImpl;
import org.olat.core.util.mail.MailManager; import org.olat.core.util.mail.MailManager;
import org.olat.core.util.mail.MailerResult; import org.olat.core.util.mail.MailerResult;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
import org.olat.group.BusinessGroupRef;
/** /**
* *
...@@ -164,16 +166,15 @@ public class InfoMessageFrontendManagerImpl implements InfoMessageFrontendManage ...@@ -164,16 +166,15 @@ public class InfoMessageFrontendManagerImpl implements InfoMessageFrontendManage
} }
@Override @Override
public void updateInfoMessagesOfIdentity(BusinessGroup businessGroup, Identity identity) { public void updateInfoMessagesOfIdentity(BusinessGroupRef businessGroup, IdentityRef identity) {
List<InfoMessage> infoMessages = infoMessageManager.loadInfoMessagesOfIdentity(businessGroup, identity); List<InfoMessage> infoMessages = infoMessageManager.loadInfoMessagesOfIdentity(businessGroup, identity);
for (InfoMessage infoMessage : infoMessages) { for (InfoMessage infoMessage : infoMessages) {
Identity author = infoMessage.getAuthor(); Identity author = infoMessage.getAuthor();
Identity modifier = infoMessage.getModifier(); if (author != null && author.getKey().equals(identity.getKey())) {
if (author != null && author.equals(identity)) {
((InfoMessageImpl)infoMessage).setAuthor(null); ((InfoMessageImpl)infoMessage).setAuthor(null);
infoSubscriptionManager.markPublisherNews(infoMessage.getOLATResourceable(), infoMessage.getResSubPath());
} }
if (modifier != null && modifier.equals(identity)) { Identity modifier = infoMessage.getModifier();
if (modifier != null && modifier.getKey().equals(identity.getKey())) {
infoMessage.setModifier(null); infoMessage.setModifier(null);
} }
infoMessageManager.saveInfoMessage(infoMessage); infoMessageManager.saveInfoMessage(infoMessage);
......
...@@ -25,6 +25,7 @@ import java.util.List; ...@@ -25,6 +25,7 @@ import java.util.List;
import org.olat.basesecurity.GroupRoles; import org.olat.basesecurity.GroupRoles;
import org.olat.basesecurity.IdentityRef; import org.olat.basesecurity.IdentityRef;
import org.olat.basesecurity.model.IdentityRefImpl; import org.olat.basesecurity.model.IdentityRefImpl;
import org.olat.commons.info.manager.InfoMessageFrontendManager;
import org.olat.core.commons.services.notifications.NotificationsManager; import org.olat.core.commons.services.notifications.NotificationsManager;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.coordinate.CoordinatorManager;
...@@ -61,6 +62,8 @@ public class BusinessGroupMembershipProcessor implements InitializingBean, Gener ...@@ -61,6 +62,8 @@ public class BusinessGroupMembershipProcessor implements InitializingBean, Gener
@Autowired @Autowired
private NotificationsManager notificationsManager; private NotificationsManager notificationsManager;
@Autowired @Autowired
private InfoMessageFrontendManager infoMessageManager;
@Autowired
private RepositoryManager repositoryManager; private RepositoryManager repositoryManager;
@Autowired @Autowired
private BusinessGroupRelationDAO businessGroupRelationDao; private BusinessGroupRelationDAO businessGroupRelationDao;
...@@ -108,6 +111,7 @@ public class BusinessGroupMembershipProcessor implements InitializingBean, Gener ...@@ -108,6 +111,7 @@ public class BusinessGroupMembershipProcessor implements InitializingBean, Gener
BusinessGroupRef groupRef = new BusinessGroupRefImpl(groupKey); BusinessGroupRef groupRef = new BusinessGroupRefImpl(groupKey);
if(!businessGroupRelationDao.hasAnyRole(identityRef, groupRef)) { if(!businessGroupRelationDao.hasAnyRole(identityRef, groupRef)) {
infoMessageManager.updateInfoMessagesOfIdentity(groupRef, identityRef);
notificationsManager.unsubscribeAllForIdentityAndResId(identityRef, groupRef.getKey()); notificationsManager.unsubscribeAllForIdentityAndResId(identityRef, groupRef.getKey());
List<BGRepositoryEntryRelation> relations = businessGroupRelationDao List<BGRepositoryEntryRelation> relations = businessGroupRelationDao
......
...@@ -1035,7 +1035,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD ...@@ -1035,7 +1035,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
private void removeParticipant(Identity ureqIdentity, Identity identity, BusinessGroup group, MailPackage mailing, private void removeParticipant(Identity ureqIdentity, Identity identity, BusinessGroup group, MailPackage mailing,
List<BusinessGroupModifiedEvent.Deferred> events) { List<BusinessGroupModifiedEvent.Deferred> events) {
infoMessageManager.updateInfoMessagesOfIdentity(group, identity);
boolean removed = businessGroupRelationDAO.removeRole(identity, group, GroupRoles.participant.name()); boolean removed = businessGroupRelationDAO.removeRole(identity, group, GroupRoles.participant.name());
if(removed) { if(removed) {
// notify currently active users of this business group // notify currently active users of this business group
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment