This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 73710fab20d69b5602dd0028b2c79fda46cbf79b Author: duc91 <[email protected]> AuthorDate: Fri Aug 14 11:26:22 2020 +0700 JAMES-3354: mailbox set: parentId handling --- .../apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala | 4 ++-- .../src/main/scala/org/apache/james/jmap/mail/MailboxSet.scala | 2 ++ .../main/scala/org/apache/james/jmap/method/MailboxSetMethod.scala | 4 +--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala index 5f86a34..d248288 100644 --- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala +++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala @@ -609,7 +609,7 @@ trait MailboxSetMethodContract { } @Test - def mailboxSetShouldNotCreateMailboxWhenMailboxItShared(server: GuiceJamesServer): Unit = { + def mailboxSetShouldNotCreateChildMailboxWhenSharedParentMailbox(server: GuiceJamesServer): Unit = { val path = MailboxPath.forUser(ANDRE, "mailbox") val mailboxId: MailboxId = server.getProbe(classOf[MailboxProbeImpl]).createMailbox(path) @@ -660,7 +660,7 @@ trait MailboxSetMethodContract { | "newState": "000001", | "notCreated": { | "C42": { - | "type": "invalidArguments", + | "type": "forbidden", | "description": "Insufficient rights", | "properties":{"value":["parentId"]} | } diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxSet.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxSet.scala index bd9983a..a55a8a3 100644 --- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxSet.scala +++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxSet.scala @@ -59,9 +59,11 @@ case class MailboxSetResponse(accountId: AccountId, object MailboxSetError { val invalidArgumentValue: SetErrorType = "invalidArguments" val serverFailValue: SetErrorType = "serverFail" + val forbiddenValue: SetErrorType = "forbidden" def invalidArgument(description: Option[SetErrorDescription], properties: Option[Properties]) = MailboxSetError(invalidArgumentValue, description, properties) def serverFail(description: Option[SetErrorDescription], properties: Option[Properties]) = MailboxSetError(serverFailValue, description, properties) + def forbidden(description: Option[SetErrorDescription], properties: Option[Properties]) = MailboxSetError(forbiddenValue, description, properties) } case class MailboxSetError(`type`: SetErrorType, description: Option[SetErrorDescription], properties: Option[Properties]) diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetMethod.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetMethod.scala index 1bee2f9..c2fcd51 100644 --- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetMethod.scala +++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetMethod.scala @@ -49,7 +49,7 @@ case class CreationFailure(mailboxCreationId: MailboxCreationId, exception: Exce case e: MailboxNotFoundException => MailboxSetError.invalidArgument(Some(SetErrorDescription(e.getMessage)), Some(Properties(List("parentId")))) case e: MailboxExistsException => MailboxSetError.invalidArgument(Some(SetErrorDescription(e.getMessage)), Some(Properties(List("name")))) case e: MailboxNameException => MailboxSetError.invalidArgument(Some(SetErrorDescription(e.getMessage)), Some(Properties(List("name")))) - case _: InsufficientRightsException => MailboxSetError.invalidArgument(Some(SetErrorDescription("Insufficient rights")), Some(Properties(List("parentId")))) + case _: InsufficientRightsException => MailboxSetError.forbidden(Some(SetErrorDescription("Insufficient rights")), Some(Properties(List("parentId")))) case _ => MailboxSetError.serverFail(Some(SetErrorDescription(exception.getMessage)), None) } } @@ -60,7 +60,6 @@ case class CreationResults(created: Seq[CreationResult]) { case success: CreationSuccess => Some(success.mailboxCreationId, success.mailboxId) case _ => None }) - .toSet .toMap def retrieveErrors: Map[MailboxCreationId, MailboxSetError] = created @@ -68,7 +67,6 @@ case class CreationResults(created: Seq[CreationResult]) { case failure: CreationFailure => Some(failure.mailboxCreationId, failure.asMailboxSetError) case _ => None }) - .toSet .toMap } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
