@Override
public void setInMailboxes(MessageId messageId, Collection<MailboxId> targetMailboxIds, MailboxSession mailboxSession) throws MailboxException {
assertRightsOnMailboxes(targetMailboxIds, mailboxSession, Right.Read);
List<MailboxMessage> currentMailboxMessages = findRelatedMailboxMessages(messageId, mailboxSession);
if (currentMailboxMessages.isEmpty()) {
LOGGER.info("Tried to access {} not accessible for {}", messageId, mailboxSession.getUser().getUserName());
return;
}
MessageMoves messageMoves = MessageMoves.builder()
.targetMailboxIds(targetMailboxIds)
.previousMailboxIds(toMailboxIds(currentMailboxMessages))
.build();
if (messageMoves.isChange()) {
applyMessageMoves(mailboxSession, currentMailboxMessages, messageMoves);
}
}