下面列出了javax.mail.Flags.Flag#DELETED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
void setFlagsToDeleteThenExpungeFromMessageManagerThenGetMessageFromMessageIdManagerShouldNotReturnAnything() throws Exception {
Flags deleted = new Flags(Flag.DELETED);
MessageId messageId = messageManager1.appendMessage(MessageManager.AppendCommand.from(mailContent), session)
.getId().getMessageId();
messageManager1.setFlags(deleted, FlagsUpdateMode.ADD, MessageRange.all(), session);
messageManager1.expunge(MessageRange.all(), session);
assertThat(messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, session)).isEmpty();
}
@Test
void expungeFromMessageManagerShouldWorkWhenSetFlagsToDeletedWithMessageIdManager() throws Exception {
Flags deleted = new Flags(Flag.DELETED);
ComposedMessageId messageId = messageManager1.appendMessage(MessageManager.AppendCommand.from(mailContent), session).getId();
messageIdManager.setFlags(deleted, FlagsUpdateMode.ADD, messageId.getMessageId(), ImmutableList.of(mailbox1.getMailboxId()), session);
assertThat(messageManager1.expunge(MessageRange.all(), session))
.toIterable()
.containsOnly(messageId.getUid());
}
@Test
void expungeFromMessageManagerShouldWorkWhenSetInMailboxesAMessageWithDeletedFlag() throws Exception { //I can mark as DELETED + expunge an mail with setInMbxs
Flags deleted = new Flags(Flag.DELETED);
ComposedMessageId messageId = messageManager1.appendMessage(
MessageManager.AppendCommand.builder()
.withFlags(deleted)
.build(mailContent), session).getId();
messageIdManager.setInMailboxes(messageId.getMessageId(), ImmutableList.of(mailbox1.getMailboxId()), session);
assertThat(messageManager1.expunge(MessageRange.all(), session))
.toIterable()
.containsOnly(messageId.getUid());
}
private void setFlag(NodeRef nodeRef, Flag flag, boolean value)
{
String permission = (flag == Flag.DELETED ? PermissionService.DELETE_NODE : PermissionService.WRITE_PROPERTIES);
AccessStatus status = permissionService.hasPermission(nodeRef, permission);
if (status == AccessStatus.DENIED)
{
if(flag == Flag.DELETED)
{
logger.debug("[setFlag] Access denied to set DELETED FLAG:" + nodeRef);
throw new AccessDeniedException("No permission to set DELETED flag");
}
if(flag == Flag.SEEN)
{
logger.debug("[setFlag] Access denied to set SEEN FLAG:" + nodeRef);
//TODO - should we throw an exception here?
//throw new AccessDeniedException("No permission to set DELETED flag");
}
else
{
logger.debug("[setFlag] Access denied to set flag:" + nodeRef);
throw new AccessDeniedException("No permission to set flag:" + flag.toString());
}
}
else
{
checkForFlaggableAspect(nodeRef);
policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_AUDITABLE);
policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_VERSIONABLE);
try
{
if(logger.isDebugEnabled())
{
logger.debug("set flag nodeRef:" + nodeRef + ",flag:" + flagToQname.get(flag) + ", value:" + value);
}
nodeService.setProperty(nodeRef, flagToQname.get(flag), value);
messageCache.remove(nodeRef);
}
finally
{
policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE);
policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE);
}
}
}