[Minor] Sorting user data in REST API

This commit is contained in:
Robert von Burg 2021-02-23 09:24:23 +01:00
parent a88b6edf66
commit aa332891b7
2 changed files with 21 additions and 22 deletions

View File

@ -25,18 +25,16 @@ public class PrivilegeElementToJsonVisitor implements PrivilegeElementVisitor<Js
JsonArray rolesArr = new JsonArray(); JsonArray rolesArr = new JsonArray();
jsonObject.add("roles", rolesArr); jsonObject.add("roles", rolesArr);
for (String role : userRep.getRoles()) { userRep.getRoles().stream().sorted(String::compareToIgnoreCase).map(JsonPrimitive::new).forEach(rolesArr::add);
rolesArr.add(new JsonPrimitive(role));
}
JsonArray propsArr = new JsonArray(); JsonArray propsArr = new JsonArray();
jsonObject.add("properties", propsArr); jsonObject.add("properties", propsArr);
for (String propKey : userRep.getPropertyKeySet()) { userRep.getPropertyKeySet().stream().sorted(String::compareToIgnoreCase).forEach(propKey -> {
JsonObject propObj = new JsonObject(); JsonObject propObj = new JsonObject();
propObj.addProperty("key", propKey); propObj.addProperty("key", propKey);
propObj.addProperty("value", userRep.getProperty(propKey)); propObj.addProperty("value", userRep.getProperty(propKey));
propsArr.add(propObj); propsArr.add(propObj);
} });
JsonObject historyJ = new JsonObject(); JsonObject historyJ = new JsonObject();
jsonObject.add("history", historyJ); jsonObject.add("history", historyJ);

View File

@ -77,16 +77,17 @@ public class PrivilegeRolesService {
@GET @GET
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Path("{rolename}") @Path("{roleName}")
public Response getRole(@PathParam("rolename") String rolename, @Context HttpServletRequest request) { public Response getRole(@PathParam("roleName") String roleName, @Context HttpServletRequest request) {
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
PrivilegeHandler privilegeHandler = getPrivilegeHandler(); PrivilegeHandler privilegeHandler = getPrivilegeHandler();
try (StrolchTransaction tx = RestfulStrolchComponent.getInstance().openTx(cert, getContext())) { try (StrolchTransaction tx = RestfulStrolchComponent.getInstance().openTx(cert, getContext())) {
tx.getPrivilegeContext().assertHasPrivilege(PRIVILEGE_GET_ROLE); tx.getPrivilegeContext().assertHasPrivilege(PRIVILEGE_GET_ROLE);
RoleRep role = privilegeHandler.getRole(cert, rolename); RoleRep role = privilegeHandler.getRole(cert, roleName);
return Response.ok(role.accept(new PrivilegeElementToJsonVisitor()).toString(), MediaType.APPLICATION_JSON).build(); return Response.ok(role.accept(new PrivilegeElementToJsonVisitor()).toString(), MediaType.APPLICATION_JSON)
.build();
} }
} }
@ -110,14 +111,14 @@ public class PrivilegeRolesService {
@PUT @PUT
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Path("{rolename}") @Path("{roleName}")
public Response replaceRole(@Context HttpServletRequest request, @PathParam("rolename") String rolename, public Response replaceRole(@Context HttpServletRequest request, @PathParam("roleName") String roleName,
String data) { String data) {
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
RoleRep updatedRole = new PrivilegeElementFromJsonVisitor().roleRepFromJson(data); RoleRep updatedRole = new PrivilegeElementFromJsonVisitor().roleRepFromJson(data);
if (!rolename.equals(updatedRole.getName())) { if (!roleName.equals(updatedRole.getName())) {
String msg = "Path rolename and data do not have same role name!"; String msg = "Path roleName and data do not have same role name!";
return ResponseUtil.toResponse(msg); return ResponseUtil.toResponse(msg);
} }
@ -133,14 +134,14 @@ public class PrivilegeRolesService {
@DELETE @DELETE
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Path("{rolename}") @Path("{roleName}")
public Response removeRole(@Context HttpServletRequest request, @PathParam("rolename") String rolename) { public Response removeRole(@Context HttpServletRequest request, @PathParam("roleName") String roleName) {
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class); ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class);
PrivilegeRemoveRoleService svc = new PrivilegeRemoveRoleService(); PrivilegeRemoveRoleService svc = new PrivilegeRemoveRoleService();
PrivilegeRoleNameArgument arg = new PrivilegeRoleNameArgument(); PrivilegeRoleNameArgument arg = new PrivilegeRoleNameArgument();
arg.roleName = rolename; arg.roleName = roleName;
PrivilegeRoleResult svcResult = svcHandler.doService(cert, svc, arg); PrivilegeRoleResult svcResult = svcHandler.doService(cert, svc, arg);
return handleServiceResult(svcResult); return handleServiceResult(svcResult);
@ -149,9 +150,9 @@ public class PrivilegeRolesService {
@PUT @PUT
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Path("{rolename}/privileges") @Path("{roleName}/privileges")
public Response addOrReplacePrivilegeOnRole(@Context HttpServletRequest request, public Response addOrReplacePrivilegeOnRole(@Context HttpServletRequest request,
@PathParam("rolename") String rolename, String data) { @PathParam("roleName") String roleName, String data) {
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
PrivilegeRep privilegeRep = new PrivilegeElementFromJsonVisitor().privilegeRepFromJson(data); PrivilegeRep privilegeRep = new PrivilegeElementFromJsonVisitor().privilegeRepFromJson(data);
@ -159,7 +160,7 @@ public class PrivilegeRolesService {
ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class); ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class);
PrivilegeAddOrReplacePrivilegeOnRoleService svc = new PrivilegeAddOrReplacePrivilegeOnRoleService(); PrivilegeAddOrReplacePrivilegeOnRoleService svc = new PrivilegeAddOrReplacePrivilegeOnRoleService();
PrivilegeAddOrReplacePrivilegeOnRoleArgument arg = new PrivilegeAddOrReplacePrivilegeOnRoleArgument(); PrivilegeAddOrReplacePrivilegeOnRoleArgument arg = new PrivilegeAddOrReplacePrivilegeOnRoleArgument();
arg.roleName = rolename; arg.roleName = roleName;
arg.privilegeRep = privilegeRep; arg.privilegeRep = privilegeRep;
PrivilegeRoleResult svcResult = svcHandler.doService(cert, svc, arg); PrivilegeRoleResult svcResult = svcHandler.doService(cert, svc, arg);
@ -169,15 +170,15 @@ public class PrivilegeRolesService {
@DELETE @DELETE
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Path("{rolename}/privileges/{privilege}") @Path("{roleName}/privileges/{privilege}")
public Response removePrivilegeFromRole(@Context HttpServletRequest request, @PathParam("rolename") String rolename, public Response removePrivilegeFromRole(@Context HttpServletRequest request, @PathParam("roleName") String roleName,
@PathParam("privilege") String privilege) { @PathParam("privilege") String privilege) {
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class); ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class);
PrivilegeRemovePrivilegeFromRoleService svc = new PrivilegeRemovePrivilegeFromRoleService(); PrivilegeRemovePrivilegeFromRoleService svc = new PrivilegeRemovePrivilegeFromRoleService();
PrivilegeRemovePrivilegeFromRoleArgument arg = new PrivilegeRemovePrivilegeFromRoleArgument(); PrivilegeRemovePrivilegeFromRoleArgument arg = new PrivilegeRemovePrivilegeFromRoleArgument();
arg.roleName = rolename; arg.roleName = roleName;
arg.privilegeName = privilege; arg.privilegeName = privilege;
PrivilegeRoleResult svcResult = svcHandler.doService(cert, svc, arg); PrivilegeRoleResult svcResult = svcHandler.doService(cert, svc, arg);