diff --git a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java index 06f1424..a005391 100644 --- a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java +++ b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java @@ -130,9 +130,13 @@ public class SciProjectMananger implements Serializable { final Optional result = fromProject .getMembers() .stream() - .filter(membership -> filterMembership(membership, - person, - fromProject)) + .filter( + membership -> filterMembership( + membership, + person, + fromProject + ) + ) .findFirst(); if (result.isPresent()) { diff --git a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/ui/SciProjectDescriptionStep.java b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/ui/SciProjectDescriptionStep.java index d35d984..bfbf9b5 100644 --- a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/ui/SciProjectDescriptionStep.java +++ b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/ui/SciProjectDescriptionStep.java @@ -533,8 +533,28 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep { } if (itemPermissionChecker.canEditItem(getProject())) { - final Optional result = assetRepo - .findByUuidAndType(personUuid, Person.class); + final Optional result; + final Identifier personIdentifier = identifierParser + .parseIdentifier(personUuid); + switch (personIdentifier.getType()) { + case ID: + result = assetRepo.findById( + Long.parseLong(personIdentifier.getIdentifier()), + Person.class + ); + break; + case UUID: + result = assetRepo + .findByUuidAndType( + personIdentifier.getIdentifier(), + Person.class + ); + break; + default: + models.put("personNotFound", personUuid); + return showStep(sectionIdentifier, documentPath); + + } if (!result.isPresent()) { models.put("personNotFound", personUuid); @@ -565,7 +585,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep { } @POST - @Path("/members/edit/{membershipId") + @Path("/members/edit/{membershipId}") @Transactional(Transactional.TxType.REQUIRED) @AuthorizationRequired public String editMembership( @@ -620,7 +640,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep { } @POST - @Path("/members/remove") + @Path("/members/remove/{membershipId}") @Transactional(Transactional.TxType.REQUIRED) @AuthorizationRequired public String removeMembership( @@ -628,7 +648,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep { final String sectionIdentifier, @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) final String documentPath, - @FormParam("membershipId") + @PathParam("membershipId") final String membershipId ) { try { @@ -778,6 +798,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep { model.setPrefix( membership.getMember().getPersonName().getPrefix() ); + model.setRole(membership.getRole()); model.setStatus(Objects.toString(membership.getStatus())); model.setSuffix( membership.getMember().getPersonName().getSuffix() diff --git a/sci-types-project/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/sciproject/ui/sciproject-description.xhtml b/sci-types-project/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/sciproject/ui/sciproject-description.xhtml index 664eef9..04d0a53 100644 --- a/sci-types-project/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/sciproject/ui/sciproject-description.xhtml +++ b/sci-types-project/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/sciproject/ui/sciproject-description.xhtml @@ -18,6 +18,18 @@ #{SciProjectMessageBundle.getMessage('description_step.errors.contactable_not_found', [contactableNotFound])} + + +
+ #{SciProjectMessageBundle.getMessage('description_step.errors.person_not_found', [personNotFound])} +
+
+ + +
+ #{SciProjectMessageBundle.getMessage('description_step.errors.illegal_member_status_value', [illegalStatusValue])} +
+