changeset 862:04bec189ca19

Check if current status stufe is lower or equal to the users funktion.
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 04 Feb 2016 13:50:24 +0100
parents 68348c675b13
children e701e2df6516
files src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java	Thu Feb 04 09:40:20 2016 +0100
+++ b/src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java	Thu Feb 04 13:50:24 2016 +0100
@@ -86,14 +86,14 @@
         else {
             messung.setOwner(false);
         }
+        LStatusProtokoll status = repository.getByIdPlain(
+            LStatusProtokoll.class,
+            messung.getStatus(),
+            "land");
         if (messung.getStatus() == null) {
             messung.setReadonly(false);
         }
         else {
-            LStatusProtokoll status = repository.getByIdPlain(
-                LStatusProtokoll.class,
-                messung.getStatus(),
-                "land");
             messung.setReadonly(
                 status.getStatusWert() != 0 && status.getStatusWert() != 4);
         }
@@ -113,11 +113,14 @@
             }
         }
         else if (userInfo.getFunktionen().contains(2) &&
-            userInfo.getNetzbetreiber().contains(probe.getNetzbetreiberId())) {
+            userInfo.getNetzbetreiber().contains(probe.getNetzbetreiberId()) &&
+            status.getStatusStufe() <= 2) {
             statusEdit = true;
         }
         else if (userInfo.getFunktionen().contains(1) &&
-            userInfo.getMessstellen().contains(probe.getMstId())) {
+            userInfo.getMessstellen().contains(probe.getMstId()) &&
+            status.getStatusStufe() <= 1
+        ) {
             statusEdit = true;
         }
         messung.setStatusEdit(statusEdit);
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)