Added admin-related SQL codes, updated AdminDao & group list controller.
Change-Id: I0000000000000000000000000000000000000000
diff --git a/full/src/test/java/de/ids_mannheim/korap/config/TestBeans.java b/full/src/test/java/de/ids_mannheim/korap/config/TestBeans.java
index d0c490c..3bbdb4f 100644
--- a/full/src/test/java/de/ids_mannheim/korap/config/TestBeans.java
+++ b/full/src/test/java/de/ids_mannheim/korap/config/TestBeans.java
@@ -4,7 +4,6 @@
import de.ids_mannheim.korap.interfaces.AuthenticationManagerIface;
import de.ids_mannheim.korap.interfaces.EncryptionIface;
-import de.ids_mannheim.korap.interfaces.db.AdminHandlerIface;
import de.ids_mannheim.korap.interfaces.db.AuditingIface;
import de.ids_mannheim.korap.interfaces.db.EntityHandlerIface;
import de.ids_mannheim.korap.interfaces.db.PolicyHandlerIface;
@@ -23,8 +22,6 @@
public EntityHandlerIface getUserDao();
- public AdminHandlerIface getAdminDao();
-
public AuditingIface getAuditingDao();
public List<ResourceOperationIface> getResourceDaos();
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerAdminTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerAdminTest.java
new file mode 100644
index 0000000..a9127cc
--- /dev/null
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerAdminTest.java
@@ -0,0 +1,62 @@
+package de.ids_mannheim.korap.web.controller;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.net.HttpHeaders;
+import com.sun.jersey.api.client.ClientHandlerException;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.ClientResponse.Status;
+import com.sun.jersey.api.client.UniformInterfaceException;
+
+import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
+import de.ids_mannheim.korap.config.Attributes;
+import de.ids_mannheim.korap.config.SpringJerseyTest;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.utils.JsonUtils;
+
+public class UserGroupControllerAdminTest extends SpringJerseyTest {
+ @Autowired
+ private HttpAuthorizationHandler handler;
+
+ @Test
+ public void testListDoryGroups () throws KustvaktException {
+ ClientResponse response = resource().path("group").path("list")
+ .queryParam("username", "dory")
+ .header(Attributes.AUTHORIZATION,
+ handler.createBasicAuthorizationHeaderValue("admin",
+ "pass"))
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .get(ClientResponse.class);
+
+ assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ String entity = response.getEntity(String.class);
+ // System.out.println(entity);
+ JsonNode node = JsonUtils.readTree(entity);
+ JsonNode group = node.get(1);
+ assertEquals(2, group.at("/id").asInt());
+ assertEquals("dory group", group.at("/name").asText());
+ assertEquals("dory", group.at("/owner").asText());
+ assertEquals(3, group.at("/members").size());
+ }
+
+ @Test
+ public void testListWithoutUsername () throws UniformInterfaceException,
+ ClientHandlerException, KustvaktException {
+ ClientResponse response = resource().path("group").path("list")
+ .header(Attributes.AUTHORIZATION,
+ handler.createBasicAuthorizationHeaderValue("admin",
+ "pass"))
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .get(ClientResponse.class);
+
+ assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ String entity = response.getEntity(String.class);
+ assertEquals("[]", entity);
+ }
+
+
+}
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
index 04314fc..f748b69 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
@@ -94,6 +94,7 @@
@Test
public void testListMarlinGroups () throws KustvaktException {
ClientResponse response = resource().path("group").path("list")
+ .queryParam("username", "marlin")
.header(Attributes.AUTHORIZATION,
handler.createBasicAuthorizationHeaderValue("marlin",
"pass"))
@@ -107,7 +108,7 @@
@Test
- public void testListUserGroupUnauthorized () throws KustvaktException {
+ public void testListGroupGuest () throws KustvaktException {
ClientResponse response = resource().path("group").path("list")
.header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
.get(ClientResponse.class);
@@ -121,6 +122,25 @@
assertEquals("Unauthorized operation for user: guest",
node.at("/errors/0/1").asText());
}
+
+ @Test
+ public void testListGroupOtherUser() throws KustvaktException {
+ ClientResponse response = resource().path("group").path("list")
+ .queryParam("username", "dory")
+ .header(Attributes.AUTHORIZATION,
+ handler.createBasicAuthorizationHeaderValue("marlin",
+ "pass"))
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .get(ClientResponse.class);
+ assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
+
+ String entity = response.getEntity(String.class);
+ JsonNode node = JsonUtils.readTree(entity);
+ assertEquals(StatusCodes.AUTHORIZATION_FAILED,
+ node.at("/errors/0/0").asInt());
+ assertEquals("Unauthorized operation for user: marlin",
+ node.at("/errors/0/1").asText());
+ }
@Test
public void testCreateUserGroup () throws UniformInterfaceException,
diff --git a/full/src/test/resources/test-config.xml b/full/src/test/resources/test-config.xml
index 9ac801c..99b2dd7 100644
--- a/full/src/test/resources/test-config.xml
+++ b/full/src/test/resources/test-config.xml
@@ -58,7 +58,7 @@
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
lazy-init="true">
- <property name="driverClassName" value="${jdbc.driverClassName}" />
+ <!-- <property name="driverClassName" value="${jdbc.driverClassName}" /> -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
@@ -182,10 +182,6 @@
<constructor-arg ref="kustvakt_db" />
</bean>
- <bean id="kustvakt_admindb" class="de.ids_mannheim.korap.handlers.AdminDao">
- <constructor-arg ref="kustvakt_db" />
- </bean>
-
<bean id="resource_provider" class="de.ids_mannheim.korap.handlers.ResourceDao">
<constructor-arg ref="kustvakt_db" />
</bean>
@@ -263,8 +259,6 @@
class="de.ids_mannheim.korap.authentication.KustvaktAuthenticationManager">
<constructor-arg
type="de.ids_mannheim.korap.interfaces.db.EntityHandlerIface" ref="kustvakt_userdb" />
- <constructor-arg
- type="de.ids_mannheim.korap.interfaces.db.AdminHandlerIface" ref="kustvakt_admindb" />
<constructor-arg type="de.ids_mannheim.korap.interfaces.EncryptionIface"
ref="kustvakt_encryption" />
<constructor-arg ref="kustvakt_config" />