Mercurial > lada > lada-server
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; + } }