diff src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java @ 1028:1c41c7b8f7c2 schema-update

Updated server application to new database model. THIS IS STILL WIP!!!
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 08 Jul 2016 15:32:36 +0200
parents ad69878b7280
children
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java	Mon Jul 04 14:31:18 2016 +0200
+++ b/src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java	Fri Jul 08 15:32:36 2016 +0200
@@ -10,10 +10,12 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import de.intevation.lada.model.land.LMessung;
-import de.intevation.lada.model.land.LProbe;
-import de.intevation.lada.model.land.LStatusProtokoll;
-import de.intevation.lada.model.stamm.AuthLstUmw;
+import de.intevation.lada.model.land.Messung;
+import de.intevation.lada.model.land.Probe;
+import de.intevation.lada.model.land.StatusProtokoll;
+import de.intevation.lada.model.stammdaten.AuthLstUmw;
+import de.intevation.lada.model.stammdaten.MessStelle;
+import de.intevation.lada.model.stammdaten.StatusKombi;
 import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.rest.RequestMethod;
 import de.intevation.lada.util.rest.Response;
@@ -27,10 +29,10 @@
         UserInfo userInfo,
         Class<T> clazz
     ) {
-        LMessung messung = (LMessung)data;
+        Messung messung = (Messung)data;
         Response response =
-            repository.getById(LProbe.class, messung.getProbeId(), "land");
-        LProbe probe = (LProbe)response.getData();
+            repository.getById(Probe.class, messung.getProbeId(), "land");
+        Probe probe = (Probe)response.getData();
         if (method == RequestMethod.PUT ||
             method == RequestMethod.DELETE) {
             return !this.isMessungReadOnly(messung.getId()) &&
@@ -39,11 +41,16 @@
         if (method == RequestMethod.POST) {
             return getAuthorization(userInfo, probe);
         }
-        LStatusProtokoll status = repository.getByIdPlain(
-            LStatusProtokoll.class,
+        StatusProtokoll status = repository.getByIdPlain(
+            StatusProtokoll.class,
             messung.getStatus(),
             "land");
-        return status.getStatusWert() > 0 || getAuthorization(userInfo, probe);
+        StatusKombi kombi = repository.getByIdPlain(
+            StatusKombi.class,
+            status.getStatusKombi(),
+            "stamm");
+        return kombi.getStatusWert().getId() > 0 ||
+            getAuthorization(userInfo, probe);
     }
 
     @SuppressWarnings("unchecked")
@@ -54,14 +61,14 @@
         Class<T> clazz
     ) {
         if (data.getData() instanceof List<?>) {
-            List<LMessung> messungen = new ArrayList<LMessung>();
-            for (LMessung messung :(List<LMessung>)data.getData()) {
+            List<Messung> messungen = new ArrayList<Messung>();
+            for (Messung messung :(List<Messung>)data.getData()) {
                 messungen.add(setAuthData(userInfo, messung));
             }
             data.setData(messungen);
         }
-        else if (data.getData() instanceof LMessung) {
-            LMessung messung = (LMessung)data.getData();
+        else if (data.getData() instanceof Messung) {
+            Messung messung = (Messung)data.getData();
             data.setData(setAuthData(userInfo, messung));
         }
         return data;
@@ -74,14 +81,15 @@
      * @param messung     The messung object.
      * @return The messung.
      */
-    private LMessung setAuthData(
+    private Messung setAuthData(
         UserInfo userInfo,
-        LMessung messung
+        Messung messung
     ) {
-        LProbe probe =
-            (LProbe)repository.getById(
-                LProbe.class, messung.getProbeId(), "land").getData();
-        if (!userInfo.getNetzbetreiber().contains(probe.getNetzbetreiberId()) &&
+        Probe probe =
+            (Probe)repository.getById(
+                Probe.class, messung.getProbeId(), "land").getData();
+        MessStelle mst = repository.getByIdPlain(MessStelle.class, probe.getMstId(), "stamm");
+        if (!userInfo.getNetzbetreiber().contains(mst.getNetzbetreiberId()) &&
             !userInfo.getFunktionen().contains(3)) {
             messung.setOwner(false);
             messung.setReadonly(true);
@@ -101,12 +109,14 @@
             messung.setStatusEdit(false);
         }
         else {
-            LStatusProtokoll status = repository.getByIdPlain(
-                LStatusProtokoll.class,
+            StatusProtokoll status = repository.getByIdPlain(
+                StatusProtokoll.class,
                 messung.getStatus(),
                 "land");
-            int stufe = status.getStatusStufe();
-            int wert  = status.getStatusWert();
+            StatusKombi kombi = repository.getByIdPlain(
+                StatusKombi.class, status.getStatusKombi(), "stamm");
+            int stufe = kombi.getStatusStufe().getId();
+            int wert  = kombi.getStatusWert().getId();
 
             messung.setReadonly(wert != 0 && wert != 4);
 
@@ -118,7 +128,7 @@
                 QueryBuilder<AuthLstUmw> lstFilter = new QueryBuilder<AuthLstUmw>(
                     repository.entityManager("stamm"),
                     AuthLstUmw.class);
-                lstFilter.or("lstId", userInfo.getMessstellen());
+                lstFilter.or("mstId", userInfo.getMessstellen());
                 List<AuthLstUmw> lsts =
                     repository.filterPlain(lstFilter.getQuery(), "stamm");
                 for (int i = 0; i < lsts.size(); i++) {
@@ -132,7 +142,7 @@
 
             // Has the user the right to edit status for the 'Netzbetreiber'?
             if (userInfo.getFunktionenForNetzbetreiber(
-                    probe.getNetzbetreiberId()).contains(2)
+                    mst.getNetzbetreiberId()).contains(2)
                 && (stufe == 1 || stufe == 2)
                 && wert >= 1
             ) {
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)