Mercurial > lada > lada-server
changeset 917:d53261aa38eb
Fixed NPE for messungen without status.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 08 Apr 2016 19:36:06 +0200 |
parents | fffa587904a8 |
children | 9f6b1df4b1e6 |
files | src/main/java/de/intevation/lada/util/auth/MessungAuthorizer.java |
diffstat | 1 files changed, 36 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- 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(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(1) && - userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId()) && - (status.getStatusStufe() <= 1 || status.getStatusWert() == 4) - ) { - statusEdit = true; - } - messung.setStatusEdit(statusEdit); - return messung; }