Mercurial > lada > lada-server
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 | 120 |
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 | 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 | 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 | 146 && (stufe == 1 || stufe == 2) |
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 | 153 if (userInfo.getFunktionenForMst(probe.getMstId()).contains(1) |
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 } |