From 2d6798fb72c1ec428f908eb2e2606a1a0dc74449 Mon Sep 17 00:00:00 2001 From: Gheorghe Soimu Date: Tue, 2 Jul 2024 15:41:50 +0300 Subject: [PATCH] Fixed some serialization issues for GetProjectSharingSettingsResult and ProjectSharingSettings. Added sharing permission for ICD_EDIT --- .../webprotege/sharing/GetProjectSharingSettingsResult.java | 4 ++-- .../protege/webprotege/sharing/ProjectSharingSettings.java | 5 ++++- .../protege/webprotege/sharing/SharingPermission.java | 2 ++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/edu/stanford/protege/webprotege/sharing/GetProjectSharingSettingsResult.java b/src/main/java/edu/stanford/protege/webprotege/sharing/GetProjectSharingSettingsResult.java index 59efc7c..7aa0565 100644 --- a/src/main/java/edu/stanford/protege/webprotege/sharing/GetProjectSharingSettingsResult.java +++ b/src/main/java/edu/stanford/protege/webprotege/sharing/GetProjectSharingSettingsResult.java @@ -1,6 +1,6 @@ package edu.stanford.protege.webprotege.sharing; -import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.*; import edu.stanford.protege.webprotege.dispatch.Result; import static com.google.common.base.Preconditions.checkNotNull; @@ -11,7 +11,7 @@ * 07/02/15 */ @JsonTypeName("webprotege.projects.GetProjectSharingSettings") -public record GetProjectSharingSettingsResult(ProjectSharingSettings settings) implements Result { +public record GetProjectSharingSettingsResult(@JsonProperty("settings") ProjectSharingSettings settings) implements Result { public GetProjectSharingSettingsResult(ProjectSharingSettings settings) { this.settings = checkNotNull(settings); diff --git a/src/main/java/edu/stanford/protege/webprotege/sharing/ProjectSharingSettings.java b/src/main/java/edu/stanford/protege/webprotege/sharing/ProjectSharingSettings.java index 228ecf3..e5734ee 100644 --- a/src/main/java/edu/stanford/protege/webprotege/sharing/ProjectSharingSettings.java +++ b/src/main/java/edu/stanford/protege/webprotege/sharing/ProjectSharingSettings.java @@ -27,7 +27,7 @@ public class ProjectSharingSettings implements Serializable { private final List sharingSettings = new ArrayList<>(); @Nullable - private SharingPermission linkSharingPermission = null; + private final SharingPermission linkSharingPermission; @JsonCreator public ProjectSharingSettings(@JsonProperty("projectId") ProjectId projectId, @@ -38,14 +38,17 @@ public ProjectSharingSettings(@JsonProperty("projectId") ProjectId projectId, this.linkSharingPermission = checkNotNull(linkSharingPermission).orElse(null); } + @JsonProperty("projectId") public ProjectId getProjectId() { return projectId; } + @JsonProperty("sharingSettings") public List getSharingSettings() { return new ArrayList<>(sharingSettings); } + @JsonProperty("linkSharingPermission") public Optional getLinkSharingPermission() { return Optional.ofNullable(linkSharingPermission); } diff --git a/src/main/java/edu/stanford/protege/webprotege/sharing/SharingPermission.java b/src/main/java/edu/stanford/protege/webprotege/sharing/SharingPermission.java index 35e2623..85056e7 100644 --- a/src/main/java/edu/stanford/protege/webprotege/sharing/SharingPermission.java +++ b/src/main/java/edu/stanford/protege/webprotege/sharing/SharingPermission.java @@ -25,6 +25,8 @@ public enum SharingPermission implements Serializable { */ EDIT, + ICD_EDIT, + /** * A user can manage a project */