changeset 838:1ed347eb856b statusworkflow

Use auth objects in user info to keep mst <-> function association.
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 14 Jan 2016 10:21:19 +0100
parents de3a26d3f663
children 2203e5d76071
files src/main/java/de/intevation/lada/util/auth/HeaderAuthorization.java src/main/java/de/intevation/lada/util/auth/TestAuthorization.java src/main/java/de/intevation/lada/util/auth/UserInfo.java
diffstat 3 files changed, 79 insertions(+), 66 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/util/auth/HeaderAuthorization.java	Mon Dec 14 15:47:10 2015 +0100
+++ b/src/main/java/de/intevation/lada/util/auth/HeaderAuthorization.java	Thu Jan 14 10:21:19 2016 +0100
@@ -65,9 +65,7 @@
             HttpServletRequest request = (HttpServletRequest)source;
             String roleString =
                 request.getAttribute("lada.user.roles").toString();
-            String[] roles = roleString.split(",");
             UserInfo info = getGroupsFromDB(roleString);
-            info.setRoles(new ArrayList<String>(Arrays.asList(roles)));
             info.setName(request.getAttribute("lada.user.name").toString());
             return info;
         }
@@ -260,27 +258,8 @@
         Response response = repository.filter(builder.getQuery(), "stamm");
         @SuppressWarnings("unchecked")
         List<Auth> auth = (List<Auth>)response.getData();
-        List<String> netzbetreiber = new ArrayList<String>();
-        List<String> messstellen = new ArrayList<String>();
-        List<Integer> funktionen = new ArrayList<Integer>();
-        for (Auth a : auth) {
-            if (a.getNetzbetreiberId() != null) {
-                netzbetreiber.add(a.getNetzbetreiberId());
-            }
-            if (a.getMstId() != null) {
-                messstellen.add(a.getMstId());
-            }
-            if (a.getLaborMstId() != null) {
-                messstellen.add(a.getLaborMstId());
-            }
-            if (a.getFunktionId() != null) {
-                funktionen.add(a.getFunktionId());
-            }
-        }
         UserInfo userInfo = new UserInfo();
-        userInfo.setNetzbetreiber(netzbetreiber);
-        userInfo.setMessstellen(messstellen);
-        userInfo.setFunktionen(funktionen);
+        userInfo.setAuth(auth);
         return userInfo;
     }
 
--- a/src/main/java/de/intevation/lada/util/auth/TestAuthorization.java	Mon Dec 14 15:47:10 2015 +0100
+++ b/src/main/java/de/intevation/lada/util/auth/TestAuthorization.java	Thu Jan 14 10:21:19 2016 +0100
@@ -10,6 +10,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import de.intevation.lada.model.stamm.Auth;
 import de.intevation.lada.util.annotation.AuthorizationConfig;
 import de.intevation.lada.util.rest.RequestMethod;
 import de.intevation.lada.util.rest.Response;
@@ -21,19 +22,28 @@
     public UserInfo getInfo(Object source) {
         UserInfo info = new UserInfo();
         info.setName("testeins");
+        List<Auth> auth = new ArrayList<Auth>();
+        Auth a1 = new Auth();
+        a1.setFunktionId(0);
+        a1.setLdapGroup("mst_06010");
+        a1.setMstId("06010");
+        a1.setNetzbetreiberId("06");
+        auth.add(a1);
+        Auth a2 = new Auth();
+        a2.setFunktionId(0);
+        a2.setLdapGroup("mst_11010");
+        a2.setNetzbetreiberId("11");
+        a2.setMstId("11010");
+        auth.add(a2);
+        Auth a3 = new Auth();
+        a3.setLdapGroup("Imis_world");
+        a3.setFunktionId(0);
+        auth.add(a3);
         List<String> roles = new ArrayList<String>();
         roles.add("mst_06010");
         roles.add("mst_11010");
         roles.add("ImisWorld");
-        info.setRoles(roles);
-        List<String> netz = new ArrayList<String>();
-        netz.add("06");
-        netz.add("11");
-        info.setNetzbetreiber(netz);
-        List<String> mess = new ArrayList<String>();
-        mess.add("06010");
-        mess.add("11010");
-        info.setMessstellen(mess);
+        info.setAuth(auth);
         return info;
     }
 
--- a/src/main/java/de/intevation/lada/util/auth/UserInfo.java	Mon Dec 14 15:47:10 2015 +0100
+++ b/src/main/java/de/intevation/lada/util/auth/UserInfo.java	Thu Jan 14 10:21:19 2016 +0100
@@ -10,6 +10,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import de.intevation.lada.model.stamm.Auth;
+
 /**
  * Container for user specific information.
  *
@@ -21,6 +23,7 @@
     private List<String> netzbetreiber;
     private List<String> roles;
     private List<Integer> funktionen;
+    private List<Auth> auth;
     private Integer statusRole;
 
     public UserInfo() {
@@ -46,49 +49,63 @@
      * @return the messstellen
      */
     public List<String> getMessstellen() {
-        return messstellen;
-    }
-
-    /**
-     * @param messstellen the messstellen to set
-     */
-    public void setMessstellen(List<String> messstellen) {
-        this.messstellen = messstellen;
+        List<String> ret = new ArrayList<String>();
+        for (Auth a : auth) {
+            if (a.getMstId() != null) {
+                ret.add(a.getMstId());
+            }
+        }
+        return ret;
     }
 
     /**
      * @return the netzbetreiber
      */
     public List<String> getNetzbetreiber() {
-        return netzbetreiber;
-    }
-
-    /**
-     * @param netzbetreiber the netzbetreiber to set
-     */
-    public void setNetzbetreiber(List<String> netzbetreiber) {
-        this.netzbetreiber = netzbetreiber;
+        List<String> ret = new ArrayList<String>();
+        for (Auth a : auth) {
+            if (a.getNetzbetreiberId() != null) {
+                ret.add(a.getNetzbetreiberId());
+            }
+        }
+        return ret;
     }
 
-    /**
-     * @return the roles
-     */
-    public List<String> getRoles() {
-        return roles;
-    }
-
-    /**
-     * @param roles the roles to set
-     */
-    public void setRoles(List<String> roles) {
-        this.roles = roles;
+    public List<Integer> getFunktionen() {
+        List<Integer> ret = new ArrayList<Integer>();
+        for (Auth a : auth) {
+            if (a.getFunktionId() != null) {
+                ret.add(a.getFunktionId());
+            }
+        }
+        return ret;
     }
 
     /**
      * @return the funktionen
      */
-    public List<Integer> getFunktionen() {
-        return this.funktionen;
+    public List<Integer> getFunktionenForMst(String mstId) {
+        List<Integer> ret = new ArrayList<Integer>();
+        for (Auth a : auth) {
+            if (a.getMstId() != null && a.getMstId().equals(mstId)) {
+                ret.add(a.getFunktionId());
+            }
+        }
+        return ret;
+    }
+
+    /**
+     * @return the funktionen
+     */
+    public List<Integer> getFunktionenForNetzbetreiber(String nId) {
+        List<Integer> ret = new ArrayList<Integer>();
+        for (Auth a : auth) {
+            if (a.getNetzbetreiberId() != null &&
+                a.getNetzbetreiberId().equals(nId)) {
+                ret.add(a.getFunktionId());
+            }
+        }
+        return ret;
     }
 
     /**
@@ -102,11 +119,14 @@
         return retVal;
     }
 
-    /**
-     * @param funktionen the funktionen to set
-     */
-    public void setFunktionen(List<Integer> funktionen) {
-        this.funktionen = funktionen;
+    public List<String> getRoles() {
+        List<String> ret = new ArrayList<String>();
+        for (Auth a : auth) {
+            if (a.getLdapGroup() != null) {
+                ret.add(a.getLdapGroup());
+            }
+        }
+        return ret;
     }
 
     /**
@@ -122,4 +142,8 @@
     public void setStatusRole(Integer statusRole) {
         this.statusRole = statusRole;
     }
+
+    public void setAuth(List<Auth> auth) {
+        this.auth = auth;
+    }
 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)