changeset 917:d53261aa38eb

Fixed NPE for messungen without status.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 08 Apr 2016 19:36:06 +0200
parents fffa587904a8
children 9f6b1df4b1e6
files src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java
diffstat 1 files changed, 36 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java	Fri Apr 08 19:35:49 2016 +0200
+++ b/src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java	Fri Apr 08 19:36:06 2016 +0200
@@ -93,51 +93,52 @@
         else {
             messung.setOwner(false);
         }
-        LStatusProtokoll status = repository.getByIdPlain(
-            LStatusProtokoll.class,
-            messung.getStatus(),
-            "land");
         if (messung.getStatus() == null) {
             messung.setReadonly(false);
+            messung.setStatusEdit(false);
         }
         else {
+            LStatusProtokoll status = repository.getByIdPlain(
+                LStatusProtokoll.class,
+                messung.getStatus(),
+                "land");
             messung.setReadonly(
                 status.getStatusWert() != 0 && status.getStatusWert() != 4);
-        }
 
-        boolean statusEdit = false;
-        if (userInfo.getFunktionen().contains(3)) {
-            QueryBuilder<AuthLstUmw> lstFilter = new QueryBuilder<AuthLstUmw>(
-                repository.entityManager("stamm"),
-                AuthLstUmw.class);
-            lstFilter.or("lstId", userInfo.getMessstellen());
-            List<AuthLstUmw> lsts =
-                repository.filterPlain(lstFilter.getQuery(), "stamm");
-            for (int i = 0; i < lsts.size(); i++) {
-                if (lsts.get(i).getUmwId().equals(probe.getUmwId())
-                    && status.getStatusStufe() == 2
-                    && status.getStatusWert() != 4
-                    || status.getStatusStufe() == 3
-                ) {
-                    statusEdit = true;
+            boolean statusEdit = false;
+            if (userInfo.getFunktionen().contains(3)) {
+                QueryBuilder<AuthLstUmw> lstFilter = new QueryBuilder<AuthLstUmw>(
+                    repository.entityManager("stamm"),
+                    AuthLstUmw.class);
+                lstFilter.or("lstId", userInfo.getMessstellen());
+                List<AuthLstUmw> lsts =
+                    repository.filterPlain(lstFilter.getQuery(), "stamm");
+                for (int i = 0; i < lsts.size(); i++) {
+                    if (lsts.get(i).getUmwId().equals(probe.getUmwId())
+                        && status.getStatusStufe() == 2
+                        && status.getStatusWert() != 4
+                        || status.getStatusStufe() == 3
+                    ) {
+                        statusEdit = true;
+                    }
                 }
             }
-        }
-        else if (userInfo.getFunktionen().contains(2) &&
-            userInfo.getNetzbetreiber().contains(probe.getNetzbetreiberId()) &&
-            (status.getStatusStufe() == 1 || status.getStatusStufe() == 2) &&
-            status.getStatusWert() >= 1
-        ) {
-            statusEdit = true;
+            else if (userInfo.getFunktionen().contains(2) &&
+                userInfo.getNetzbetreiber().contains(probe.getNetzbetreiberId()) &&
+                (status.getStatusStufe() == 1 || status.getStatusStufe() == 2) &&
+                status.getStatusWert() >= 1
+            ) {
+                statusEdit = true;
+            }
+            else if (userInfo.getFunktionen().contains(1) &&
+                userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId()) &&
+                (status.getStatusStufe() <= 1 || status.getStatusWert() == 4)
+            ) {
+                statusEdit = true;
+            }
+            messung.setStatusEdit(statusEdit);
+
         }
-        else if (userInfo.getFunktionen().contains(1) &&
-            userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId()) &&
-            (status.getStatusStufe() <= 1 || status.getStatusWert() == 4)
-        ) {
-            statusEdit = true;
-        }
-        messung.setStatusEdit(statusEdit);
-
         return messung;
     }
 
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)