Added hasQuery param to listRolesByGroup web-service.
Rename query access.
Change-Id: Iab63af14f37045d9b34b41554f15758f1d24b0c1
diff --git a/src/main/java/de/ids_mannheim/korap/dto/QueryAccessDto.java b/src/main/java/de/ids_mannheim/korap/dto/RoleDto.java
similarity index 71%
rename from src/main/java/de/ids_mannheim/korap/dto/QueryAccessDto.java
rename to src/main/java/de/ids_mannheim/korap/dto/RoleDto.java
index f6e1173..0e16496 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/QueryAccessDto.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/RoleDto.java
@@ -2,12 +2,13 @@
import java.util.List;
-import de.ids_mannheim.korap.entity.UserGroupMember;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
import lombok.Getter;
import lombok.Setter;
/**
- * Defines the structure of query accesses, e.g. as JSON
+ * Defines the structure of query roles, e.g. as JSON
* objects in HTTP Responses.
*
* @author margaretha
@@ -15,9 +16,12 @@
*/
@Getter
@Setter
-public class QueryAccessDto {
+public class RoleDto {
private int roleId;
+ private String privilege;
+ @JsonInclude(JsonInclude.Include.NON_DEFAULT)
private int queryId;
+ @JsonInclude(JsonInclude.Include.NON_NULL)
private String queryName;
private int userGroupId;
private String userGroupName;
diff --git a/src/main/java/de/ids_mannheim/korap/dto/converter/QueryAccessConverter.java b/src/main/java/de/ids_mannheim/korap/dto/converter/RoleConverter.java
similarity index 68%
rename from src/main/java/de/ids_mannheim/korap/dto/converter/QueryAccessConverter.java
rename to src/main/java/de/ids_mannheim/korap/dto/converter/RoleConverter.java
index e2445e4..08ddb8e 100644
--- a/src/main/java/de/ids_mannheim/korap/dto/converter/QueryAccessConverter.java
+++ b/src/main/java/de/ids_mannheim/korap/dto/converter/RoleConverter.java
@@ -6,7 +6,7 @@
import org.springframework.stereotype.Component;
-import de.ids_mannheim.korap.dto.QueryAccessDto;
+import de.ids_mannheim.korap.dto.RoleDto;
import de.ids_mannheim.korap.entity.Role;
import de.ids_mannheim.korap.entity.UserGroupMember;
@@ -20,16 +20,19 @@
*
*/
@Component
-public class QueryAccessConverter {
+public class RoleConverter {
- public List<QueryAccessDto> createRoleDto (Set<Role> roles) {
- List<QueryAccessDto> dtos = new ArrayList<>(roles.size());
+ public List<RoleDto> createRoleDto (Set<Role> roles) {
+ List<RoleDto> dtos = new ArrayList<>(roles.size());
for (Role role : roles) {
- QueryAccessDto dto = new QueryAccessDto();
+ RoleDto dto = new RoleDto();
dto.setRoleId(role.getId());
-// dto.setCreatedBy(role.getCreatedBy());
- dto.setQueryId(role.getQuery().getId());
- dto.setQueryName(role.getQuery().getName());
+ dto.setPrivilege(role.getPrivilege().name());
+
+ if (role.getQuery() != null) {
+ dto.setQueryId(role.getQuery().getId());
+ dto.setQueryName(role.getQuery().getName());
+ }
dto.setUserGroupId(role.getUserGroup().getId());
dto.setUserGroupName(role.getUserGroup().getName());
List<String> members = new ArrayList<>(
diff --git a/src/main/java/de/ids_mannheim/korap/service/QueryService.java b/src/main/java/de/ids_mannheim/korap/service/QueryService.java
index cf3f70e..b9d7c3c 100644
--- a/src/main/java/de/ids_mannheim/korap/service/QueryService.java
+++ b/src/main/java/de/ids_mannheim/korap/service/QueryService.java
@@ -29,9 +29,9 @@
import de.ids_mannheim.korap.dao.RoleDao;
import de.ids_mannheim.korap.dao.UserGroupDao;
import de.ids_mannheim.korap.dao.UserGroupMemberDao;
-import de.ids_mannheim.korap.dto.QueryAccessDto;
+import de.ids_mannheim.korap.dto.RoleDto;
import de.ids_mannheim.korap.dto.QueryDto;
-import de.ids_mannheim.korap.dto.converter.QueryAccessConverter;
+import de.ids_mannheim.korap.dto.converter.RoleConverter;
import de.ids_mannheim.korap.dto.converter.QueryConverter;
import de.ids_mannheim.korap.entity.QueryDO;
import de.ids_mannheim.korap.entity.Role;
@@ -97,7 +97,7 @@
@Autowired
private QueryConverter converter;
@Autowired
- private QueryAccessConverter accessConverter;
+ private RoleConverter accessConverter;
private void verifyUsername (String contextUsername, String pathUsername)
throws KustvaktException {
@@ -577,16 +577,15 @@
// return accessConverter.createQueryAccessDto(accessList);
// }
- public List<QueryAccessDto> listRolesByGroup (String username,
- String groupName) throws KustvaktException {
+ public List<RoleDto> listRolesByGroup (String username,
+ String groupName, boolean hasQuery) throws KustvaktException {
UserGroup userGroup = userGroupService
.retrieveUserGroupByName(groupName);
Set<Role> roles;
if (adminDao.isAdmin(username)
|| userGroupService.isUserGroupAdmin(username, userGroup)) {
- // accessList = accessDao.retrieveAllAccessByGroup(userGroup.getId());
- roles = roleDao.retrieveRoleByGroupId(userGroup.getId(), true);
+ roles = roleDao.retrieveRoleByGroupId(userGroup.getId(), hasQuery);
}
else {
diff --git a/src/main/java/de/ids_mannheim/korap/web/controller/VirtualCorpusController.java b/src/main/java/de/ids_mannheim/korap/web/controller/VirtualCorpusController.java
index 879963e..cb1ceda 100644
--- a/src/main/java/de/ids_mannheim/korap/web/controller/VirtualCorpusController.java
+++ b/src/main/java/de/ids_mannheim/korap/web/controller/VirtualCorpusController.java
@@ -9,7 +9,7 @@
import de.ids_mannheim.korap.constant.OAuth2Scope;
import de.ids_mannheim.korap.constant.QueryType;
-import de.ids_mannheim.korap.dto.QueryAccessDto;
+import de.ids_mannheim.korap.dto.RoleDto;
import de.ids_mannheim.korap.dto.QueryDto;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.exceptions.StatusCodes;
@@ -27,6 +27,7 @@
import de.ids_mannheim.korap.web.utils.ResourceFilters;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.DefaultValue;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.PUT;
@@ -413,14 +414,15 @@
*/
@GET
@Path("access")
- public List<QueryAccessDto> listRoles (
- @Context SecurityContext securityContext,
- @QueryParam("groupName") String groupName) {
+ public List<RoleDto> listRoles (@Context SecurityContext securityContext,
+ @QueryParam("groupName") String groupName,
+ @DefaultValue("true") @QueryParam("hasQuery") boolean hasQuery) {
TokenContext context = (TokenContext) securityContext
.getUserPrincipal();
try {
scopeService.verifyScope(context, OAuth2Scope.VC_ACCESS_INFO);
- return service.listRolesByGroup(context.getUsername(), groupName);
+ return service.listRolesByGroup(context.getUsername(), groupName,
+ hasQuery);
}
catch (KustvaktException e) {
throw kustvaktResponseHandler.throwit(e);