From 06cc7805dd72227dc516687f074590f96c5e836d Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Mon, 17 Jun 2019 10:01:14 +0200 Subject: [PATCH] Bugfix: Now Organization Admin can edit and create POIs again --- .../servlet/PointOfInterestController.java | 16 +++++++++++++++- src/main/webapp/templates/poiForm.ftl | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java index b3fb1d1b..46938c9b 100755 --- a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java +++ b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java @@ -544,6 +544,13 @@ public class PointOfInterestController extends HttpServlet { { request.getSession().setAttribute("users", em.createNamedQuery("VipsLogicUser.findAll", VipsLogicUser.class).getResultList()); } + else if(user.isOrganizationAdmin()) + { + request.getSession().setAttribute("users", + em.createNamedQuery("VipsLogicUser.findByOrganizationId", VipsLogicUser.class) + .setParameter("organizationId", user.getOrganizationId()).getResultList() + ); + } Integer organizationId = Integer.valueOf(request.getParameter("organizationId")); request.setAttribute("returnURL","poi?organizationId=" + organizationId); request.getRequestDispatcher("/poiForm.ftl").forward(request, response); @@ -584,6 +591,13 @@ public class PointOfInterestController extends HttpServlet { { request.getSession().setAttribute("users", em.createNamedQuery("VipsLogicUser.findAll", VipsLogicUser.class).getResultList()); } + else if(user.isOrganizationAdmin()) + { + request.getSession().setAttribute("users", + em.createNamedQuery("VipsLogicUser.findByOrganizationId", VipsLogicUser.class) + .setParameter("organizationId", user.getOrganizationId()).getResultList() + ); + } request.setAttribute("returnURL","poi?organizationId=" + poi.getUserId().getOrganizationId().getOrganizationId()); request.getRequestDispatcher("/poiForm.ftl").forward(request, response); } @@ -656,7 +670,7 @@ public class PointOfInterestController extends HttpServlet { // If userId is set from form, always update - if(user.isSuperUser() && !formValidation.getFormField("userId").isEmpty()) + if((user.isSuperUser() || user.isOrganizationAdmin()) && !formValidation.getFormField("userId").isEmpty()) { poi.setUserId(em.find(VipsLogicUser.class, formValidation.getFormField("userId").getValueAsInteger())); } diff --git a/src/main/webapp/templates/poiForm.ftl b/src/main/webapp/templates/poiForm.ftl index 80bc9bd0..979d046f 100755 --- a/src/main/webapp/templates/poiForm.ftl +++ b/src/main/webapp/templates/poiForm.ftl @@ -176,7 +176,7 @@ </fieldset> </#if> - <#if user.isSuperUser()> + <#if user.isSuperUser() || user.isOrganizationAdmin()> <div class="form-group"> <label for="userId">${i18nBundle.vipsLogicUserId}</label> <select class="form-control" name="userId" onblur="validateField(this);"> -- GitLab