List of usage examples for io.vertx.core.json JsonObject getString
public String getString(String key)
From source file:org.entcore.directory.controllers.StructureController.java
License:Open Source License
@Put("structure/:id/profile/block") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(AdminStructureFilter.class) public void blockUsers(final HttpServerRequest request) { RequestUtils.bodyToJson(request, new Handler<JsonObject>() { @Override/*from w w w . j av a 2 s . c o m*/ public void handle(JsonObject json) { final String structureId = request.params().get("id"); final String profile = json.getString("profile"); final boolean block = json.getBoolean("block", true); structureService.blockUsers(structureId, profile, block, new Handler<JsonObject>() { @Override public void handle(JsonObject r) { if ("ok".equals(r.getString("status"))) { request.response().end(); JsonArray usersId = r.getJsonArray("result").getJsonObject(0).getJsonArray("usersId"); for (Object userId : usersId) { UserUtils.deletePermanentSession(eb, (String) userId, null, new Handler<Boolean>() { @Override public void handle(Boolean event) { if (!event) { log.error("Error delete permanent session with userId : " + userId); } } }); UserUtils.deleteCacheSession(eb, (String) userId, new Handler<Boolean>() { @Override public void handle(Boolean event) { if (!event) { log.error("Error delete cache session with userId : " + userId); } } }); } } else { badRequest(request); } } }); } }); }
From source file:org.entcore.directory.controllers.UserBookController.java
License:Open Source License
@Override public void init(final Vertx vertx, JsonObject config, RouteMatcher rm, Map<String, fr.wseduc.webutils.security.SecuredAction> securedActions) { pathPrefix = "/userbook"; super.init(vertx, config, rm, securedActions); this.neo = new Neo(vertx, Server.getEventBus(vertx), log); this.config = config; userBookData = config.getJsonObject("user-book-data"); final HttpClientOptions options = new HttpClientOptions().setDefaultHost(config.getString("workspace-url")) .setDefaultPort(config.getInteger("workspace-port")).setMaxPoolSize(16).setKeepAlive(false); client = vertx.createHttpClient(options); getWithRegEx(".*", "proxyDocument"); eventStore = EventStoreFactory.getFactory().getEventStore(ANNUAIRE_MODULE); if (config.getBoolean("activation-welcome-message", false)) { activationWelcomeMessage = new HashMap<>(); String assetsPath = (String) vertx.sharedData().getLocalMap("server").get("assetPath"); Map<String, String> skins = vertx.sharedData().getLocalMap("skins"); if (skins != null) { activationWelcomeMessage = new HashMap<>(); for (final Map.Entry<String, String> e : skins.entrySet()) { String path = assetsPath + "/assets/themes/" + e.getValue() + "/template/directory/welcome/"; vertx.fileSystem().readDir(path, new Handler<AsyncResult<List<String>>>() { @Override//from w ww.jav a 2 s .c o m public void handle(AsyncResult<List<String>> event) { if (event.succeeded()) { final Map<String, String> messages = new HashMap<>(); activationWelcomeMessage.put(e.getKey(), messages); for (final String file : event.result()) { vertx.fileSystem().readFile(file, new Handler<AsyncResult<Buffer>>() { @Override public void handle(AsyncResult<Buffer> event) { if (event.succeeded()) { String filename = file.substring( file.lastIndexOf(File.separator) + 1, file.lastIndexOf(".")); messages.put(filename, event.result().toString()); if (log.isDebugEnabled()) { log.debug("Load welcome message " + file + " as " + filename); } } } }); } } } }); } } } }
From source file:org.entcore.directory.controllers.UserBookController.java
License:Open Source License
@Put("/preference/:application") @SecuredAction(value = "user.preference", type = ActionType.AUTHENTICATED) public void updatePreference(final HttpServerRequest request) { UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() { @Override/* w w w .j av a2 s. c o m*/ public void handle(final UserInfos user) { if (user != null) { final JsonObject params = new JsonObject().put("userId", user.getUserId()); final String application = request.params().get("application").replaceAll("\\W+", ""); request.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer body) { params.put("conf", body.toString("UTF-8")); String query = "MATCH (u:User {id:{userId}})" + "MERGE (u)-[:PREFERS]->(uac:UserAppConf)" + " ON CREATE SET uac." + application + " = {conf}" + " ON MATCH SET uac." + application + " = {conf}"; neo.execute(query, params, validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> result) { if (result.isRight()) { renderJson(request, result.right().getValue()); UserUtils.getSession(eb, request, new Handler<JsonObject>() { public void handle(JsonObject session) { final JsonObject cache = session.getJsonObject("cache"); if (cache.containsKey("preferences")) { JsonObject prefs = cache.getJsonObject("preferences"); prefs.put(application, params.getString("conf")); if ("theme".equals(application)) { prefs.remove(THEME_ATTRIBUTE + getHost(request)); } UserUtils.addSessionAttribute(eb, user.getUserId(), "preferences", prefs, new Handler<Boolean>() { public void handle(Boolean event) { UserUtils.removeSessionAttribute(eb, user.getUserId(), THEME_ATTRIBUTE + getHost(request), null); if (!event) log.error( "Could not add preferences attribute to session."); } }); } } }); } else { leftToResponse(request, result.left()); } } })); } }); } else { badRequest(request); } } }); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
@Put("/userbook/:userId") @SecuredAction(value = "", type = ActionType.RESOURCE) public void updateUserBook(final HttpServerRequest request) { bodyToJson(request, new Handler<JsonObject>() { @Override// w ww . ja v a 2 s . c o m public void handle(final JsonObject body) { final String userId = request.params().get("userId"); String motto = body.getString("motto"); if (motto != null && motto.length() > MOTTO_MAX_LENGTH) { badRequest(request); return; } userBookService.update(userId, body, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { if (event.isRight()) { UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() { @Override public void handle(UserInfos user) { if (user != null && userId != null && userId.equals(user.getUserId())) { notifyTimeline(request, user, body); } } }); UserUtils.removeSessionAttribute(eb, userId, PERSON_ATTRIBUTE, null); renderJson(request, event.right().getValue()); } else { JsonObject error = new JsonObject().put("error", event.left().getValue()); renderJson(request, error, 400); } } }); } }); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
@Put("/avatar/:userId") @SecuredAction(value = "", type = ActionType.RESOURCE) public void updateAvatar(final HttpServerRequest request) { final String userId = request.params().get("userId"); bodyToJson(request, new Handler<JsonObject>() { @Override/*from w ww . j a va 2 s .c o m*/ public void handle(JsonObject body) { String p = body.getString("picture"); if (!StringValidation.isAbsoluteDocumentUri(p)) { badRequest(request); return; } final JsonObject j = new JsonObject().put("picture", p); userBookService.update(userId, j, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> u) { if (u.isRight()) { renderJson(request, j); } else { leftToResponse(request, u.left()); } } }); } }); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
private void notifyTimeline(final HttpServerRequest request, final UserInfos user, final JsonObject body) { if (body == null) { return;//from w w w.j a v a2s.c o m } UserUtils.findUsersCanSeeMe(eb, request, new Handler<JsonArray>() { @Override public void handle(JsonArray users) { String mood = body.getString("mood"); String motto = body.getString("motto"); List<String> userIds = new ArrayList<>(); for (Object o : users) { JsonObject u = (JsonObject) o; userIds.add(u.getString("id")); } JsonObject params = new JsonObject() .put("uri", pathPrefix + "/annuaire#" + user.getUserId() + "#" + user.getType()) .put("username", user.getUsername()).put("motto", motto).put("moodImg", mood); if (mood != null && !mood.trim().isEmpty() && !mood.equals("default")) { notification.notifyTimeline(request, "userbook.userbook_mood", user, userIds, user.getUserId() + System.currentTimeMillis() + "mood", params); } if (motto != null && !motto.trim().isEmpty()) { notification.notifyTimeline(request, "userbook.userbook_motto", user, userIds, user.getUserId() + System.currentTimeMillis() + "motto", params); } } }); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
@Post("/user/function/:userId") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(AddFunctionFilter.class) @IgnoreCsrf/*from ww w.ja v a2 s . c om*/ public void addFunction(final HttpServerRequest request) { final String userId = request.params().get("userId"); bodyToJson(request, pathPrefix + "addFunction", new Handler<JsonObject>() { @Override public void handle(JsonObject event) { userService.addFunction(userId, event.getString("functionCode"), event.getJsonArray("scope"), event.getString("inherit", ""), r -> { if (r.isRight()) { final String groupId = (String) r.right().getValue().remove("groupId"); if (isNotEmpty(groupId)) { JsonObject j = new JsonObject().put("action", "setCommunicationRules") .put("groupId", groupId); eb.send("wse.communication", j); } renderJson(request, r.right().getValue()); } else { badRequest(request, r.left().getValue()); } }); } }); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
@Post("/user/headteacher/:userId") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(AdmlOfStructures.class) @IgnoreCsrf/* w w w. j a v a 2s .c o m*/ public void addHeadTeacherManual(final HttpServerRequest request) { final String userId = request.params().get("userId"); bodyToJson(request, pathPrefix + "addHeadTeacher", new Handler<JsonObject>() { @Override public void handle(JsonObject event) { userService.addHeadTeacherManual(userId, event.getString("structureExternalId"), event.getString("classExternalId"), defaultResponseHandler(request)); } }); }
From source file:org.entcore.directory.controllers.UserController.java
License:Open Source License
@Put("/user/headteacher/:userId") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(AdmlOfStructures.class) public void updateHeadTeacherManual(final HttpServerRequest request) { final String userId = request.params().get("userId"); bodyToJson(request, pathPrefix + "updateHeadTeacher", new Handler<JsonObject>() { @Override/*from w ww . ja va2s .c o m*/ public void handle(JsonObject event) { userService.updateHeadTeacherManual(userId, event.getString("structureExternalId"), event.getString("classExternalId"), defaultResponseHandler(request)); } }); }
From source file:org.entcore.directory.security.DirectoryResourcesProvider.java
License:Open Source License
private void isAdminOfStructureOrClass(final HttpServerRequest request, UserInfos user, final Handler<Boolean> handler) { Map<String, UserInfos.Function> functions = user.getFunctions(); if (functions == null || functions.isEmpty()) { handler.handle(false);//from ww w. ja v a 2 s .com return; } final UserInfos.Function adminLocal = functions.get(DefaultFunctions.ADMIN_LOCAL); final UserInfos.Function classAdmin = functions.get(DefaultFunctions.CLASS_ADMIN); if ((adminLocal == null || adminLocal.getScope() == null) && (classAdmin == null || classAdmin.getScope() == null)) { handler.handle(false); return; } RequestUtils.bodyToJson(request, new Handler<JsonObject>() { @Override public void handle(JsonObject event) { String classId = event.getString("classId"); String structureId = event.getString("structureId"); if ((adminLocal != null && adminLocal.getScope() != null && adminLocal.getScope().contains(structureId)) || (classAdmin != null && classAdmin.getScope() != null && classAdmin.getScope().contains(classId))) { handler.handle(true); } else if (adminLocal != null && classId != null && adminLocal.getScope() != null) { String query = "MATCH (s:Structure)<-[:BELONGS]-(c:Class {id : {classId}}) " + "WHERE s.id IN {ids} " + "RETURN count(*) > 0 as exists"; JsonObject params = new JsonObject().put("classId", classId).put("ids", new fr.wseduc.webutils.collections.JsonArray(adminLocal.getScope())); validateQuery(request, handler, query, params); } else { handler.handle(false); } } }); }