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