List of usage examples for io.vertx.core.json JsonArray size
public int size()
From source file:org.entcore.conversation.service.impl.Neo4jConversationService.java
License:Open Source License
public void findInactives(final JsonObject message, long size, final Handler<JsonObject> handler) { Set<Object> dest = new HashSet<>(); dest.addAll(message.getJsonArray("to", new fr.wseduc.webutils.collections.JsonArray()).getList()); dest.addAll(message.getJsonArray("cc", new fr.wseduc.webutils.collections.JsonArray()).getList()); JsonObject params = new JsonObject().put("dest", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<Object>(dest))); String returnClause = ""; if (size > 0) { returnClause = "RETURN " + "[t IN targets WHERE t.quotaLeft IS NULL OR t.quotaLeft < {attachmentsSize} | t.users.displayName] as undelivered, " + "[t IN targets WHERE t.quotaLeft IS NOT NULL AND t.quotaLeft >= {attachmentsSize} | t.users.id] as userTargets "; params.put("attachmentsSize", size); } else {//w ww . java 2 s .c om returnClause = "RETURN " + "[t IN targets WHERE t.users.activationCode IS NOT NULL | t.users.displayName] as inactives, " + "EXTRACT(t IN targets | t.users.id) as userTargets "; } String query = "MATCH (v:Visible)<-[:IN*0..1]-(u:User) " + "WHERE v.id IN {dest} " + "OPTIONAL MATCH (u)-[:USERBOOK]->(ub:UserBook) " + "WITH COLLECT(DISTINCT {users: u, quotaLeft: (ub.quota - ub.storage)}) as targets " + returnClause; neo.execute(query, params, new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { JsonArray r = event.body().getJsonArray("result"); JsonObject formattedResult = new JsonObject() .put("inactives", new fr.wseduc.webutils.collections.JsonArray()) .put("actives", new fr.wseduc.webutils.collections.JsonArray()) .put("allUsers", new fr.wseduc.webutils.collections.JsonArray()); if ("ok".equals(event.body().getString("status")) && r != null && r.size() == 1) { JsonObject j = r.getJsonObject(0); formattedResult.put("inactives", j.getJsonArray("inactives", new fr.wseduc.webutils.collections.JsonArray())); formattedResult.put("undelivered", j.getJsonArray("undelivered", new fr.wseduc.webutils.collections.JsonArray())); formattedResult.put("allUsers", j.getJsonArray("userTargets", new fr.wseduc.webutils.collections.JsonArray())); } handler.handle(formattedResult); } }); }
From source file:org.entcore.conversation.service.impl.SqlConversationService.java
License:Open Source License
private String formatArray(JsonArray array, String delimiter, String prefix, String postfix) { if (array.size() == 0) { return "{}"; }/*from w w w. j av a2 s.c om*/ StringBuilder builder = new StringBuilder(prefix); for (Object obj : array) { builder.append(obj.toString() + delimiter); } if (array.size() > 0) builder.delete(0, builder.length() - delimiter.length()); builder.append(postfix); return builder.toString(); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
@Put("/user/:studentId/related/:relativeId") @ResourceFilter(RelativeStudentFilter.class) @SecuredAction(value = "", type = ActionType.RESOURCE) public void relativeStudent(final HttpServerRequest request) { final String studentId = request.params().get("studentId"); final String relativeId = request.params().get("relativeId"); userService.relativeStudent(relativeId, studentId, new Handler<Either<String, JsonObject>>() { @Override/*from w ww . j a v a2 s. com*/ public void handle(Either<String, JsonObject> res) { if (res.isRight()) { JsonArray structures = res.right().getValue().getJsonArray("structures"); JsonObject j = new JsonObject().put("action", "setMultipleDefaultCommunicationRules") .put("schoolIds", structures); eb.send("wse.communication", j); JsonArray a = new fr.wseduc.webutils.collections.JsonArray().add(relativeId); ApplicationUtils.publishModifiedUserGroup(eb, a); if (structures == null || structures.size() == 0) { notFound(request, "user.not.found"); } else { ok(request); } } else { renderJson(request, new JsonObject().put("error", res.left().getValue()), 400); } } }); }
From source file:org.entcore.directory.security.AnyAdminOfUser.java
License:Open Source License
@Override public void authorize(final HttpServerRequest request, Binding binding, final UserInfos user, final Handler<Boolean> handler) { //Super-admin "hack" if (user.getFunctions().containsKey(SUPER_ADMIN)) { handler.handle(true);/*from w w w. j av a 2 s . c o m*/ return; } String userId = request.params().get("userId"); if (userId == null || userId.trim().isEmpty()) { handler.handle(false); return; } Set<String> ids = DirectoryResourcesProvider.getIds(user); String query = "MATCH (u:User {id : {userId}})-[:IN]->()-[:DEPENDS]->()-[:BELONGS*0..1]->s2 " + "WHERE s2.id IN {ids} RETURN count(*) > 0 as exists UNION " + "MATCH (u: User {id : {userId}})-[:HAS_RELATIONSHIPS]->(b: Backup) " + "WHERE ANY(structId IN b.structureIds WHERE structId IN {ids}) " + "RETURN count(*) > 0 as exists"; JsonObject params = new JsonObject().put("id", request.params().get("groupId")).put("userId", userId) .put("ids", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ids))); request.pause(); Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("result"); if ("ok".equals(r.body().getString("status")) && res.size() == 2 && (((JsonObject) res.getJsonObject(0)).getBoolean("exists", false) || ((JsonObject) res.getJsonObject(1)).getBoolean("exists", false))) { handler.handle(true); } else if ("ok".equals(r.body().getString("status")) && res.size() == 1 && ((JsonObject) res.getJsonObject(0)).getBoolean("exists", false)) { handler.handle(true); } else { handler.handle(false); } } }); }
From source file:org.entcore.directory.security.DirectoryResourcesProvider.java
License:Open Source License
private static void validateQuery(final HttpServerRequest request, final Handler<Boolean> handler, String query, JsonObject params) {// ww w . ja va 2s . c o m request.pause(); Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("result"); handler.handle("ok".equals(r.body().getString("status")) && res.size() == 1 && (res.getJsonObject(0)).getBoolean("exists", false)); } }); }
From source file:org.entcore.directory.security.DirectoryResourcesProvider.java
License:Open Source License
private void adminOrTeacher(final HttpServerRequest request, final UserInfos user, final Handler<Boolean> handler) { Set<String> ids = getIds(user); if (ids == null) return;/*from w ww . ja va 2 s .c o m*/ String query = "MATCH (u:User {id : {userId}})-[:IN]->()-[:DEPENDS]->()-[:BELONGS*0..1]->s2 " + "WHERE s2.id IN {ids} " + "RETURN count(*) > 0 as exists"; JsonObject params = new JsonObject().put("id", request.params().get("groupId")) .put("userId", request.params().get("userId")) .put("ids", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ids))); request.pause(); neo.execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("result"); if ("ok".equals(r.body().getString("status")) && res.size() == 1 && (res.getJsonObject(0)).getBoolean("exists", false)) { handler.handle(true); } else { isTeacherOf(request, user, handler); } } }); }
From source file:org.entcore.directory.security.DirectoryResourcesProvider.java
License:Open Source License
private void isClassTeacher(final HttpServerRequest request, final UserInfos user, final Handler<Boolean> handler) { final String classId = request.params().get("classId"); if (classId == null || classId.trim().isEmpty()) { handler.handle(false);//from ww w . j a v a2 s . c om return; } Set<String> ids = getIds(user); String query = "MATCH (c:Class {id : {classId}})-[:BELONGS]->s2 " + "WHERE s2.id IN {ids} " + "RETURN count(*) > 0 as exists"; JsonObject params = new JsonObject().put("classId", classId).put("userId", request.params().get("userId")) .put("ids", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ids))); request.pause(); neo.execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("result"); if ("ok".equals(r.body().getString("status")) && res.size() == 1 && (res.getJsonObject(0)).getBoolean("exists", false)) { handler.handle(true); } else if ("Teacher".equals(user.getType()) || "Personnel".equals(user.getType())) { String query = "MATCH (c:`Class` { id : {classId}})<-[:DEPENDS]-(pg:ProfileGroup)" + "<-[:IN]-(t:`User` { id : {teacherId}}) " + "RETURN count(*) > 0 as exists "; JsonObject params = new JsonObject().put("classId", classId).put("teacherId", user.getUserId()); validateQuery(request, handler, query, params); } else { handler.handle(false); } } }); }
From source file:org.entcore.directory.security.DirectoryResourcesProvider.java
License:Open Source License
private void isClassMember(final HttpServerRequest request, final UserInfos user, final Handler<Boolean> handler) { final String classId = request.params().get("classId"); if (classId == null || classId.trim().isEmpty()) { handler.handle(false);//from w w w . j a v a2s . c om return; } Set<String> ids = getIds(user); String query = "MATCH (c:Class {id : {classId}})-[:BELONGS]->s2 " + "WHERE s2.id IN {ids} " + "RETURN count(*) > 0 as exists"; JsonObject params = new JsonObject().put("classId", classId).put("userId", request.params().get("userId")) .put("ids", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ids))); request.pause(); neo.execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("result"); if ("ok".equals(r.body().getString("status")) && res.size() == 1 && (res.getJsonObject(0)).getBoolean("exists", false)) { handler.handle(true); } else { String query = "MATCH (c:`Class` { id : {classId}})<-[:DEPENDS]-(pg:ProfileGroup)" + "<-[:IN]-(t:`User` { id : {teacherId}}) " + "RETURN count(*) > 0 as exists "; JsonObject params = new JsonObject().put("classId", classId).put("teacherId", user.getUserId()); validateQuery(request, handler, query, params); } } }); }
From source file:org.entcore.directory.security.RelativeStudentFilter.java
License:Open Source License
@Override public void authorize(final HttpServerRequest request, Binding binding, UserInfos user, final Handler<Boolean> handler) { Map<String, UserInfos.Function> functions = user.getFunctions(); if (functions == null || functions.isEmpty()) { handler.handle(false);//from www .j a va2 s .co m return; } if (functions.containsKey(SUPER_ADMIN)) { handler.handle(true); return; } final UserInfos.Function adminLocal = functions.get(DefaultFunctions.ADMIN_LOCAL); if (adminLocal == null || adminLocal.getScope() == null) { handler.handle(false); return; } final String studentId = request.params().get("studentId"); final String relativeId = request.params().get("relativeId"); String query = "MATCH (s)<-[:DEPENDS]-(:Group)<-[:IN]-(:User { id : {id}}) " + "WHERE (s:Structure OR s:Class) AND s.id IN {scope} " + "RETURN count(*) > 0 as exists "; JsonArray scope = new fr.wseduc.webutils.collections.JsonArray(adminLocal.getScope()); StatementsBuilder s = new StatementsBuilder() .add(query, new JsonObject().put("id", studentId).put("scope", scope)) .add(query, new JsonObject().put("id", relativeId).put("scope", scope)); request.pause(); Neo4j.getInstance().executeTransaction(s.build(), null, true, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("results"); handler.handle("ok".equals(r.body().getString("status")) && res.size() == 2 && res.getJsonArray(0).getJsonObject(0).getBoolean("exists", false) && res.getJsonArray(1).getJsonObject(0).getBoolean("exists", false)); } }); }
From source file:org.entcore.directory.security.TeacherOfClass.java
License:Open Source License
@Override public void authorize(final HttpServerRequest request, Binding binding, final UserInfos user, final Handler<Boolean> handler) { final String classId = request.params().get("classId"); if (classId == null || classId.trim().isEmpty()) { handler.handle(false);/* w w w . j a va2 s. c om*/ return; } Set<String> ids = DirectoryResourcesProvider.getIds(user); String query = "MATCH (c:Class {id : {classId}})-[:BELONGS]->s2 " + "WHERE s2.id IN {ids} " + "RETURN count(*) > 0 as exists"; JsonObject params = new JsonObject().put("classId", classId).put("userId", request.params().get("userId")) .put("ids", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ids))); request.pause(); neo.execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> r) { request.resume(); JsonArray res = r.body().getJsonArray("result"); if ("ok".equals(r.body().getString("status")) && res.size() == 1 && ((JsonObject) res.getJsonObject(0)).getBoolean("exists", false)) { handler.handle(true); } else if ("Teacher".equals(user.getType()) || "Personnel".equals(user.getType())) { String query = "MATCH (c:`Class` { id : {classId}})<-[:DEPENDS]-(pg:ProfileGroup)" + "<-[:IN]-(t:`User` { id : {teacherId}}) " + "RETURN count(*) > 0 as exists "; JsonObject params = new JsonObject().put("classId", classId).put("teacherId", user.getUserId()); validateQuery(request, handler, query, params); } else { handler.handle(false); } } }); }