diff --git a/dspace-api/src/main/java/org/dspace/content/packager/RoleDisseminator.java b/dspace-api/src/main/java/org/dspace/content/packager/RoleDisseminator.java index 8643f60f6ce0..e9644c8737dd 100644 --- a/dspace-api/src/main/java/org/dspace/content/packager/RoleDisseminator.java +++ b/dspace-api/src/main/java/org/dspace/content/packager/RoleDisseminator.java @@ -17,6 +17,7 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; @@ -78,6 +79,8 @@ public class RoleDisseminator implements PackageDisseminator { public static final String CAN_LOGIN = "CanLogin"; public static final String REQUIRE_CERTIFICATE = "RequireCertificate"; public static final String SELF_REGISTERED = "SelfRegistered"; + public static final String WELCOME_INFO = "welcomeInfo"; + public static final String CAN_EDIT_SUBMISSION_METADATA = "canEditSubmissionMetadata"; // Valid type values for Groups (only used when Group is associated with a Community or Collection) public static final String GROUP_TYPE_ADMIN = "ADMIN"; @@ -461,6 +464,13 @@ protected void writeEPerson(EPerson eperson, XMLStreamWriter writer, writer.writeEmptyElement(SELF_REGISTERED); } + if (Objects.nonNull(eperson.getWelcomeInfo())) { + writer.writeEmptyElement(WELCOME_INFO); + } + + if (Objects.nonNull(eperson.getCanEditSubmissionMetadata())) { + writer.writeEmptyElement(CAN_EDIT_SUBMISSION_METADATA); + } writer.writeEndElement(); } diff --git a/dspace-api/src/main/java/org/dspace/eperson/EPerson.java b/dspace-api/src/main/java/org/dspace/eperson/EPerson.java index def7697632e1..3238796c5fd1 100644 --- a/dspace-api/src/main/java/org/dspace/eperson/EPerson.java +++ b/dspace-api/src/main/java/org/dspace/eperson/EPerson.java @@ -80,6 +80,12 @@ public class EPerson extends DSpaceObject implements DSpaceObjectLegacySupport { @ManyToMany(fetch = FetchType.LAZY, mappedBy = "epeople") private final List groups = new ArrayList<>(); + @Column(name = "welcome_info") + private String welcomeInfo; + + @Column(name = "can_edit_submission_metadata") + private Boolean canEditSubmissionMetadata; + /** * The e-mail field (for sorting) */ @@ -446,4 +452,19 @@ public Date getPreviousActive() { return previousActive; } + public String getWelcomeInfo() { + return welcomeInfo; + } + public void setWelcomeInfo(String welcomeInfo) { + this.welcomeInfo = welcomeInfo; + } + public Boolean getCanEditSubmissionMetadata() { + return canEditSubmissionMetadata; + } + public void setCanEditSubmissionMetadata(Boolean canEditSubmissionMetadata) { + this.canEditSubmissionMetadata = canEditSubmissionMetadata; + } + + + } diff --git a/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/h2/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql b/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/h2/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql index f59aa38f5471..6c433443a8ba 100644 --- a/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/h2/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql +++ b/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/h2/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql @@ -406,4 +406,8 @@ ALTER TABLE metadatafieldregistry ALTER COLUMN element TYPE character varying(128); ALTER TABLE handle - ALTER COLUMN url TYPE character varying(8192); \ No newline at end of file + ALTER COLUMN url TYPE character varying(8192); + +ALTER TABLE eperson ADD welcome_info varchar(30); + +ALTER TABLE eperson ADD can_edit_submission_metadata BOOL; \ No newline at end of file diff --git a/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/postgres/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql b/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/postgres/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql index 601a842418c7..b336010262f0 100644 --- a/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/postgres/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql +++ b/dspace-api/src/main/resources/org/dspace/storage/rdbms/sqlmigration/postgres/V7.2_2022.07.28__Upgrade_to_Lindat_Clarin_schema.sql @@ -484,3 +484,7 @@ ALTER TABLE eperson ALTER TABLE metadatafieldregistry ALTER COLUMN element TYPE character varying(128); + +ALTER TABLE eperson ADD welcome_info varchar(30); + +ALTER TABLE eperson ADD can_edit_submission_metadata BOOL; \ No newline at end of file diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/EPersonConverter.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/EPersonConverter.java index 4dcf08589a31..3223de131d24 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/EPersonConverter.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/EPersonConverter.java @@ -30,6 +30,8 @@ public EPersonRest convert(EPerson obj, Projection projection) { eperson.setRequireCertificate(obj.getRequireCertificate()); eperson.setSelfRegistered(obj.getSelfRegistered()); eperson.setEmail(obj.getEmail()); + eperson.setWelcomeInfo(obj.getWelcomeInfo()); + eperson.setCanEditSubmissionMetadata(obj.getCanEditSubmissionMetadata()); return eperson; } diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/model/EPersonRest.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/model/EPersonRest.java index 7b4c683322a9..9fb246cf43b9 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/model/EPersonRest.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/model/EPersonRest.java @@ -42,6 +42,8 @@ public class EPersonRest extends DSpaceObjectRest { private boolean requireCertificate = false; private Boolean selfRegistered; + private String welcomeInfo; + private Boolean canEditSubmissionMetadata; @JsonProperty(access = Access.WRITE_ONLY) private String password; @@ -107,6 +109,18 @@ public String getPassword() { public void setPassword(String password) { this.password = password; } + public String getWelcomeInfo() { + return welcomeInfo; + } + public void setWelcomeInfo(String welcomeInfo) { + this.welcomeInfo = welcomeInfo; + } + public Boolean getCanEditSubmissionMetadata() { + return canEditSubmissionMetadata; + } + public void setCanEditSubmissionMetadata(Boolean canEditSubmissionMetadata) { + this.canEditSubmissionMetadata = canEditSubmissionMetadata; + } @Override public String getCategory() { diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/EPersonRestRepository.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/EPersonRestRepository.java index a1cd6dd25fb3..0a735ed46556 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/EPersonRestRepository.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/EPersonRestRepository.java @@ -128,6 +128,8 @@ private EPerson createEPersonFromRestObject(Context context, EPersonRest eperson eperson.setRequireCertificate(epersonRest.isRequireCertificate()); eperson.setEmail(epersonRest.getEmail()); eperson.setNetid(epersonRest.getNetid()); + eperson.setWelcomeInfo(epersonRest.getWelcomeInfo()); + eperson.setCanEditSubmissionMetadata(epersonRest.getCanEditSubmissionMetadata()); if (epersonRest.getPassword() != null) { es.setPassword(eperson, epersonRest.getPassword()); }