[Lada-commits] [PATCH 13 of 15] Filter messstellen, netzbetreiber and verwaltungseinheiten

Wald Commits scm-commit at wald.intevation.org
Mon Mar 23 18:00:05 CET 2015


# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1427129627 -3600
# Node ID 6de05718ac8d208abb98581ba36b78a6016b7409
# Parent  b3eee641431016ef7f8184d2e6111a5e5bcbab5c
Filter messstellen, netzbetreiber and verwaltungseinheiten.

diff -r b3eee6414310 -r 6de05718ac8d src/main/java/de/intevation/lada/rest/stamm/MessstelleService.java
--- a/src/main/java/de/intevation/lada/rest/stamm/MessstelleService.java	Mon Mar 23 17:53:19 2015 +0100
+++ b/src/main/java/de/intevation/lada/rest/stamm/MessstelleService.java	Mon Mar 23 17:53:47 2015 +0100
@@ -7,8 +7,11 @@
  */
 package de.intevation.lada.rest.stamm;
 
+import java.util.ArrayList;
+
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
@@ -18,16 +21,13 @@
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.UriInfo;
 
-import org.apache.log4j.Logger;
-
 import de.intevation.lada.model.stamm.MessStelle;
-import de.intevation.lada.util.annotation.AuthenticationConfig;
 import de.intevation.lada.util.annotation.AuthorizationConfig;
 import de.intevation.lada.util.annotation.RepositoryConfig;
-import de.intevation.lada.util.auth.Authentication;
-import de.intevation.lada.util.auth.AuthenticationType;
 import de.intevation.lada.util.auth.Authorization;
 import de.intevation.lada.util.auth.AuthorizationType;
+import de.intevation.lada.util.auth.UserInfo;
+import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.data.Repository;
 import de.intevation.lada.util.data.RepositoryType;
 import de.intevation.lada.util.rest.Response;
@@ -36,23 +36,14 @@
 @RequestScoped
 public class MessstelleService {
 
-    /* The logger used in this class.*/
-    @Inject
-    private Logger logger;
-
     /* The data repository granting read/write access.*/
     @Inject
     @RepositoryConfig(type=RepositoryType.RO)
     private Repository defaultRepo;
 
-    /* The authentication module.*/
-    @Inject
-    @AuthenticationConfig(type=AuthenticationType.NONE)
-    private Authentication authentication;
-
     /* The authorization module.*/
     @Inject
-    @AuthorizationConfig(type=AuthorizationType.NONE)
+    @AuthorizationConfig(type=AuthorizationType.OPEN_ID)
     private Authorization authorization;
 
     /**
@@ -65,13 +56,15 @@
     @Produces(MediaType.APPLICATION_JSON)
     public Response get(
         @Context HttpHeaders headers,
+        @Context HttpServletRequest request,
         @Context UriInfo info
     ) {
-        if (!authentication.isAuthenticated(headers)) {
-            logger.debug("User is not authenticated!");
-            return new Response(false, 699, null);
-        }
-        return defaultRepo.getAll(MessStelle.class, "stamm");
+        UserInfo userInfo = authorization.getInfo(request);
+        QueryBuilder<MessStelle> builder =
+            new QueryBuilder<MessStelle>(
+                defaultRepo.entityManager("stamm"), MessStelle.class);
+        builder.or("id", userInfo.getMessstellen());
+        return defaultRepo.filter(builder.getQuery(), "stamm");
     }
 
     /**
@@ -84,15 +77,13 @@
     @Produces(MediaType.APPLICATION_JSON)
     public Response getById(
         @Context HttpHeaders headers,
+        @Context HttpServletRequest request,
         @PathParam("id") String id
     ) {
-        if (!authentication.isAuthenticated(headers)) {
-            logger.debug("User is not authenticated!");
-            return new Response(false, 699, null);
+        UserInfo userInfo = authorization.getInfo(request);
+        if (userInfo.getMessstellen().contains(id)) {
+            return defaultRepo.getById(MessStelle.class, id, "stamm");
         }
-        return defaultRepo.getById(
-            MessStelle.class,
-            id,
-            "stamm");
+        return new Response(false, 698, new ArrayList<MessStelle>());
     }
 }
diff -r b3eee6414310 -r 6de05718ac8d src/main/java/de/intevation/lada/rest/stamm/NetzbetreiberService.java
--- a/src/main/java/de/intevation/lada/rest/stamm/NetzbetreiberService.java	Mon Mar 23 17:53:19 2015 +0100
+++ b/src/main/java/de/intevation/lada/rest/stamm/NetzbetreiberService.java	Mon Mar 23 17:53:47 2015 +0100
@@ -7,8 +7,11 @@
  */
 package de.intevation.lada.rest.stamm;
 
+import java.util.ArrayList;
+
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
@@ -18,16 +21,13 @@
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.UriInfo;
 
-import org.apache.log4j.Logger;
-
 import de.intevation.lada.model.stamm.NetzBetreiber;
-import de.intevation.lada.util.annotation.AuthenticationConfig;
 import de.intevation.lada.util.annotation.AuthorizationConfig;
 import de.intevation.lada.util.annotation.RepositoryConfig;
-import de.intevation.lada.util.auth.Authentication;
-import de.intevation.lada.util.auth.AuthenticationType;
 import de.intevation.lada.util.auth.Authorization;
 import de.intevation.lada.util.auth.AuthorizationType;
+import de.intevation.lada.util.auth.UserInfo;
+import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.data.Repository;
 import de.intevation.lada.util.data.RepositoryType;
 import de.intevation.lada.util.rest.Response;
@@ -36,23 +36,14 @@
 @RequestScoped
 public class NetzbetreiberService {
 
-    /* The logger used in this class.*/
-    @Inject
-    private Logger logger;
-
     /* The data repository granting read/write access.*/
     @Inject
     @RepositoryConfig(type=RepositoryType.RO)
     private Repository defaultRepo;
 
-    /* The authentication module.*/
-    @Inject
-    @AuthenticationConfig(type=AuthenticationType.NONE)
-    private Authentication authentication;
-
     /* The authorization module.*/
     @Inject
-    @AuthorizationConfig(type=AuthorizationType.NONE)
+    @AuthorizationConfig(type=AuthorizationType.OPEN_ID)
     private Authorization authorization;
 
     /**
@@ -65,13 +56,15 @@
     @Produces(MediaType.APPLICATION_JSON)
     public Response get(
         @Context HttpHeaders headers,
+        @Context HttpServletRequest request,
         @Context UriInfo info
     ) {
-        if (!authentication.isAuthenticated(headers)) {
-            logger.debug("User is not authenticated!");
-            return new Response(false, 699, null);
-        }
-        return defaultRepo.getAll(NetzBetreiber.class, "stamm");
+        UserInfo userInfo = authorization.getInfo(request);
+        QueryBuilder<NetzBetreiber> builder =
+            new QueryBuilder<NetzBetreiber>(
+                defaultRepo.entityManager("stamm"), NetzBetreiber.class);
+        builder.or("id", userInfo.getNetzbetreiber());
+        return defaultRepo.filter(builder.getQuery(), "stamm");
     }
 
     /**
@@ -84,15 +77,13 @@
     @Produces(MediaType.APPLICATION_JSON)
     public Response getById(
         @Context HttpHeaders headers,
+        @Context HttpServletRequest request,
         @PathParam("id") String id
     ) {
-        if (!authentication.isAuthenticated(headers)) {
-            logger.debug("User is not authenticated!");
-            return new Response(false, 699, null);
+        UserInfo userInfo = authorization.getInfo(request);
+        if (userInfo.getNetzbetreiber().contains(id)) {
+            return defaultRepo.getById(NetzBetreiber.class, id, "stamm");
         }
-        return defaultRepo.getById(
-            NetzBetreiber.class,
-            id,
-            "stamm");
+        return new Response(false, 698, new ArrayList<NetzBetreiber>());
     }
 }
diff -r b3eee6414310 -r 6de05718ac8d src/main/java/de/intevation/lada/rest/stamm/VerwaltungseinheitService.java
--- a/src/main/java/de/intevation/lada/rest/stamm/VerwaltungseinheitService.java	Mon Mar 23 17:53:19 2015 +0100
+++ b/src/main/java/de/intevation/lada/rest/stamm/VerwaltungseinheitService.java	Mon Mar 23 17:53:47 2015 +0100
@@ -16,18 +16,12 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriInfo;
 
-import org.apache.log4j.Logger;
-
 import de.intevation.lada.model.stamm.Verwaltungseinheit;
-import de.intevation.lada.util.annotation.AuthenticationConfig;
-import de.intevation.lada.util.annotation.AuthorizationConfig;
 import de.intevation.lada.util.annotation.RepositoryConfig;
-import de.intevation.lada.util.auth.Authentication;
-import de.intevation.lada.util.auth.AuthenticationType;
-import de.intevation.lada.util.auth.Authorization;
-import de.intevation.lada.util.auth.AuthorizationType;
+import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.data.Repository;
 import de.intevation.lada.util.data.RepositoryType;
 import de.intevation.lada.util.rest.Response;
@@ -36,25 +30,11 @@
 @RequestScoped
 public class VerwaltungseinheitService {
 
-    /* The logger used in this class.*/
-    @Inject
-    private Logger logger;
-
     /* The data repository granting read/write access.*/
     @Inject
     @RepositoryConfig(type=RepositoryType.RO)
     private Repository defaultRepo;
 
-    /* The authentication module.*/
-    @Inject
-    @AuthenticationConfig(type=AuthenticationType.NONE)
-    private Authentication authentication;
-
-    /* The authorization module.*/
-    @Inject
-    @AuthorizationConfig(type=AuthorizationType.NONE)
-    private Authorization authorization;
-
     /**
      * Get all objects.
      *
@@ -67,11 +47,16 @@
         @Context HttpHeaders headers,
         @Context UriInfo info
     ) {
-        if (!authentication.isAuthenticated(headers)) {
-            logger.debug("User is not authenticated!");
-            return new Response(false, 699, null);
+        MultivaluedMap<String, String> params = info.getQueryParameters();
+        if (params.isEmpty() || !params.containsKey("query")) {
+            return defaultRepo.getAll(Verwaltungseinheit.class, "stamm");
         }
-        return defaultRepo.getAll(Verwaltungseinheit.class, "stamm");
+        String filter = params.getFirst("query");
+        QueryBuilder<Verwaltungseinheit> builder =
+            new QueryBuilder<Verwaltungseinheit>(
+                defaultRepo.entityManager("stamm"), Verwaltungseinheit.class);
+        builder.andLike("bezeichnung", filter + "%");
+        return defaultRepo.filter(builder.getQuery(), "stamm");
     }
 
     /**
@@ -86,10 +71,6 @@
         @Context HttpHeaders headers,
         @PathParam("id") String id
     ) {
-        if (!authentication.isAuthenticated(headers)) {
-            logger.debug("User is not authenticated!");
-            return new Response(false, 699, null);
-        }
         return defaultRepo.getById(
             Verwaltungseinheit.class,
             id,


More information about the Lada-commits mailing list