Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/util/auth/ProbeAuthorizer.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 | f5b4784d9173 |
children |
comparison
equal
deleted
inserted
replaced
1027:9971471d562c | 1028:1c41c7b8f7c2 |
---|---|
8 package de.intevation.lada.util.auth; | 8 package de.intevation.lada.util.auth; |
9 | 9 |
10 import java.util.ArrayList; | 10 import java.util.ArrayList; |
11 import java.util.List; | 11 import java.util.List; |
12 | 12 |
13 import de.intevation.lada.model.land.LProbe; | 13 import de.intevation.lada.model.land.Probe; |
14 import de.intevation.lada.model.stammdaten.MessStelle; | |
14 import de.intevation.lada.util.rest.RequestMethod; | 15 import de.intevation.lada.util.rest.RequestMethod; |
15 import de.intevation.lada.util.rest.Response; | 16 import de.intevation.lada.util.rest.Response; |
16 | 17 |
17 public class ProbeAuthorizer extends BaseAuthorizer { | 18 public class ProbeAuthorizer extends BaseAuthorizer { |
18 | 19 |
21 Object data, | 22 Object data, |
22 RequestMethod method, | 23 RequestMethod method, |
23 UserInfo userInfo, | 24 UserInfo userInfo, |
24 Class<T> clazz | 25 Class<T> clazz |
25 ) { | 26 ) { |
26 LProbe probe = (LProbe)data; | 27 Probe probe = (Probe)data; |
27 if (method == RequestMethod.PUT || | 28 if (method == RequestMethod.PUT || |
28 method == RequestMethod.DELETE) { | 29 method == RequestMethod.DELETE) { |
29 return !isProbeReadOnly(probe.getId()); | 30 return !isProbeReadOnly(probe.getId()); |
30 } | 31 } |
31 return getAuthorization(userInfo, probe); | 32 return getAuthorization(userInfo, probe); |
37 Response data, | 38 Response data, |
38 UserInfo userInfo, | 39 UserInfo userInfo, |
39 Class<T> clazz | 40 Class<T> clazz |
40 ) { | 41 ) { |
41 if (data.getData() instanceof List<?>) { | 42 if (data.getData() instanceof List<?>) { |
42 List<LProbe> proben = new ArrayList<LProbe>(); | 43 List<Probe> proben = new ArrayList<Probe>(); |
43 for (LProbe probe :(List<LProbe>)data.getData()) { | 44 for (Probe probe :(List<Probe>)data.getData()) { |
44 proben.add(setAuthData(userInfo, probe)); | 45 proben.add(setAuthData(userInfo, probe)); |
45 } | 46 } |
46 data.setData(proben); | 47 data.setData(proben); |
47 } | 48 } |
48 else if (data.getData() instanceof LProbe) { | 49 else if (data.getData() instanceof Probe) { |
49 LProbe probe = (LProbe)data.getData(); | 50 Probe probe = (Probe)data.getData(); |
50 data.setData(setAuthData(userInfo, probe)); | 51 data.setData(setAuthData(userInfo, probe)); |
51 } | 52 } |
52 return data; | 53 return data; |
53 } | 54 } |
54 | 55 |
57 * | 58 * |
58 * @param userInfo The user information. | 59 * @param userInfo The user information. |
59 * @param probe The probe object. | 60 * @param probe The probe object. |
60 * @return The probe. | 61 * @return The probe. |
61 */ | 62 */ |
62 private LProbe setAuthData(UserInfo userInfo, LProbe probe) { | 63 private Probe setAuthData(UserInfo userInfo, Probe probe) { |
63 if (!userInfo.getNetzbetreiber().contains(probe.getNetzbetreiberId())) { | 64 MessStelle mst = repository.getByIdPlain(MessStelle.class, probe.getMstId(), "stamm"); |
65 if (!userInfo.getNetzbetreiber().contains(mst.getNetzbetreiberId())) { | |
64 probe.setOwner(false); | 66 probe.setOwner(false); |
65 probe.setReadonly(true); | 67 probe.setReadonly(true); |
66 return probe; | 68 return probe; |
67 } | 69 } |
68 if (userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId())) { | 70 if (userInfo.belongsTo(probe.getMstId(), probe.getLaborMstId())) { |