annotate 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
rev   line source
849
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
2 * Software engineering by Intevation GmbH
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
3 *
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
d0a591b3eade Added missing file header.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 833
diff changeset
7 */
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.util.auth;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import java.util.ArrayList;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import java.util.List;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
13 import de.intevation.lada.model.land.Messung;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
14 import de.intevation.lada.model.land.Probe;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
15 import de.intevation.lada.model.land.StatusProtokoll;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
16 import de.intevation.lada.model.stammdaten.AuthLstUmw;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
17 import de.intevation.lada.model.stammdaten.MessStelle;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
18 import de.intevation.lada.model.stammdaten.StatusKombi;
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.util.data.QueryBuilder;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.util.rest.RequestMethod;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.util.rest.Response;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 public class MessungAuthorizer extends BaseAuthorizer {
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 @Override
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 public <T> boolean isAuthorized(
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 Object data,
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 RequestMethod method,
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 UserInfo userInfo,
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 Class<T> clazz
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 ) {
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
32 Messung messung = (Messung)data;
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 Response response =
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
34 repository.getById(Probe.class, messung.getProbeId(), "land");
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
35 Probe probe = (Probe)response.getData();
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 if (method == RequestMethod.PUT ||
889
c160d6c895d2 Check messung status to authorize GET requests on Messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
37 method == RequestMethod.DELETE) {
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 return !this.isMessungReadOnly(messung.getId()) &&
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 getAuthorization(userInfo, probe);
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 }
895
0a69252ed7a0 Fixed IAE on messung create.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 894
diff changeset
41 if (method == RequestMethod.POST) {
0a69252ed7a0 Fixed IAE on messung create.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 894
diff changeset
42 return getAuthorization(userInfo, probe);
0a69252ed7a0 Fixed IAE on messung create.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 894
diff changeset
43 }
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
44 StatusProtokoll status = repository.getByIdPlain(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
45 StatusProtokoll.class,
889
c160d6c895d2 Check messung status to authorize GET requests on Messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
46 messung.getStatus(),
c160d6c895d2 Check messung status to authorize GET requests on Messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
47 "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
48 StatusKombi kombi = repository.getByIdPlain(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
49 StatusKombi.class,
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
50 status.getStatusKombi(),
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
51 "stamm");
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
52 return kombi.getStatusWert().getId() > 0 ||
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
53 getAuthorization(userInfo, probe);
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 @SuppressWarnings("unchecked")
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 @Override
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 public <T> Response filter(
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 Response data,
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 UserInfo userInfo,
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 Class<T> clazz
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 ) {
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 if (data.getData() instanceof List<?>) {
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
64 List<Messung> messungen = new ArrayList<Messung>();
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
65 for (Messung messung :(List<Messung>)data.getData()) {
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 messungen.add(setAuthData(userInfo, messung));
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 data.setData(messungen);
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 }
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
70 else if (data.getData() instanceof Messung) {
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
71 Messung messung = (Messung)data.getData();
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 data.setData(setAuthData(userInfo, messung));
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 return data;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 /**
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 * Authorize a sinle messung object.
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 *
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 * @param userInfo The user information.
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 * @param messung The messung object.
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 * @return The messung.
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 */
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
84 private Messung setAuthData(
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 UserInfo userInfo,
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
86 Messung messung
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 ) {
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
88 Probe probe =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
89 (Probe)repository.getById(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
90 Probe.class, messung.getProbeId(), "land").getData();
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
91 MessStelle mst = repository.getByIdPlain(MessStelle.class, probe.getMstId(), "stamm");
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
92 if (!userInfo.getNetzbetreiber().contains(mst.getNetzbetreiberId()) &&
861
68348c675b13 Since LST has no netzbetreiberId, check if the user belongs to a LST in
Raimund Renkert <raimund.renkert@intevation.de>
parents: 849
diff changeset
93 !userInfo.getFunktionen().contains(3)) {
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 messung.setOwner(false);
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 messung.setReadonly(true);
920
edb014e8045d Always set statusEdit attribute for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 917
diff changeset
96 messung.setStatusEdit(false);
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 return messung;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 }
965
ad69878b7280 Authorize status change only for matching user.
Tom Gottfried <tom@intevation.de>
parents: 964
diff changeset
99
894
f5b4784d9173 Load probe attribute 'laborMstId' from db and use this field to authorize
Raimund Renkert <raimund.renkert@intevation.de>
parents: 889
diff changeset
100 if (userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId())) {
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 messung.setOwner(true);
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 else {
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 messung.setOwner(false);
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 }
965
ad69878b7280 Authorize status change only for matching user.
Tom Gottfried <tom@intevation.de>
parents: 964
diff changeset
106
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 if (messung.getStatus() == null) {
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 messung.setReadonly(false);
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
109 messung.setStatusEdit(false);
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 else {
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
112 StatusProtokoll status = repository.getByIdPlain(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
113 StatusProtokoll.class,
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
114 messung.getStatus(),
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
115 "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
116 StatusKombi kombi = repository.getByIdPlain(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
117 StatusKombi.class, status.getStatusKombi(), "stamm");
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
118 int stufe = kombi.getStatusStufe().getId();
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
119 int wert = kombi.getStatusWert().getId();
962
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
120
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
121 messung.setReadonly(wert != 0 && wert != 4);
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
123 boolean statusEdit = false;
964
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
124
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
125 /* Does the user belong to an appropriate 'Leitstelle' to
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
126 edit status? */
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
127 if (userInfo.getFunktionen().contains(3)) {
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
128 QueryBuilder<AuthLstUmw> lstFilter = new QueryBuilder<AuthLstUmw>(
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
129 repository.entityManager("stamm"),
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
130 AuthLstUmw.class);
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
131 lstFilter.or("mstId", userInfo.getMessstellen());
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
132 List<AuthLstUmw> lsts =
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
133 repository.filterPlain(lstFilter.getQuery(), "stamm");
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
134 for (int i = 0; i < lsts.size(); i++) {
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
135 if (lsts.get(i).getUmwId().equals(probe.getUmwId())
962
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
136 && (stufe == 2 || stufe == 3)
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
137 ) {
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
138 statusEdit = true;
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
139 }
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 }
964
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
142
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
143 // Has the user the right to edit status for the 'Netzbetreiber'?
962
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
144 if (userInfo.getFunktionenForNetzbetreiber(
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 965
diff changeset
145 mst.getNetzbetreiberId()).contains(2)
962
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
146 && (stufe == 1 || stufe == 2)
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
147 && wert >= 1
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
148 ) {
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
149 statusEdit = true;
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
150 }
964
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
151
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
152 // Has the user the right to edit status for the 'Messstelle'?
962
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
153 if (userInfo.getFunktionenForMst(probe.getMstId()).contains(1)
829092ba09f7 Improve readability.
Tom Gottfried <tom@intevation.de>
parents: 960
diff changeset
154 && (stufe <= 1 || wert == 4)
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
155 ) {
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
156 statusEdit = true;
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
157 }
964
3c1b1631e474 Explain with comments and remove conditions each applied by one above.
Tom Gottfried <tom@intevation.de>
parents: 962
diff changeset
158
917
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
159 messung.setStatusEdit(statusEdit);
d53261aa38eb Fixed NPE for messungen without status.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 895
diff changeset
160
833
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 return messung;
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 }
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164
fa922101a462 Refactored Authorization.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)