[Lada-commits] [PATCH 3 of 4] Fixed NPE for messungen without status

Wald Commits scm-commit at wald.intevation.org
Fri Apr 8 19:36:32 CEST 2016


# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1460136966 -7200
# Node ID d53261aa38eb6449b2988c16df33dc158d5a8e3a
# Parent  fffa587904a8b148a213befebc4afc9acad36d48
Fixed NPE for messungen without status.

diff -r fffa587904a8 -r d53261aa38eb src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java
--- 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(1) &&
+                userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId()) &&
+                (status.getStatusStufe() <= 1 || status.getStatusWert() == 4)
+            ) {
+                statusEdit = true;
+            }
+            messung.setStatusEdit(statusEdit);
+
         }
-        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);
-
         return messung;
     }
 


More information about the Lada-commits mailing list