Allow admin to create groups with name length less than 3 characters
to support existing groups from C2
Change-Id: I79d8642ebc1379a5a4d412ff212200aee4cf76a5
diff --git a/Changes b/Changes
index 6739ef1..a3b2545 100644
--- a/Changes
+++ b/Changes
@@ -4,6 +4,8 @@
- Fix deprecated URL constructor (AI assisted)
- Fix Jackson and serialization deprecated methods (AI assisted)
- Change Userdata to use String username instead of integer userId
+- Allow admin to create groups with name length less than 3 characters
+ to support existing groups from C2
# version 1.1
diff --git a/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java b/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java
index 6362d25..897bd20 100644
--- a/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java
+++ b/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java
@@ -198,7 +198,10 @@
*/
public boolean createUpdateUserGroup (String groupName, String description,
String createdBy) throws KustvaktException {
- ParameterChecker.checkNameValue(groupName, "groupName");
+
+ if (!adminDao.isAdmin(createdBy)) {
+ ParameterChecker.checkNameValue(groupName, "groupName");
+ }
ParameterChecker.checkStringValue(createdBy, "createdBy");
if (!groupNamePattern.matcher(groupName).matches()) {
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java
index a1754fd..a82736b 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java
@@ -80,6 +80,20 @@
node.at("/errors/0/1").asText());
assertEquals("groupName", node.at("/errors/0/2").asText());
}
+
+ @Test
+ public void testCreateGroupShortNameAdmin ()
+ throws KustvaktException {
+ String groupName = "ab";
+ Response response = target().path(API_VERSION).path("group")
+ .path("@" + groupName).request()
+ .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
+ .createBasicAuthorizationHeaderValue(admin, "pass"))
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .put(Entity.form(new Form()));
+ assertEquals(Status.CREATED.getStatusCode(), response.getStatus());
+ deleteGroupByName(groupName,admin);
+ }
@Test
public void testUserGroup () throws KustvaktException {