Example usage for io.vertx.core.json JsonObject getString

List of usage examples for io.vertx.core.json JsonObject getString

Introduction

In this page you can find the example usage for io.vertx.core.json JsonObject getString.

Prototype

public String getString(String key) 

Source Link

Document

Get the string value with the specified key, special cases are addressed for extended JSON types Instant , byte[] and Enum which can be converted to String.

Usage

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);
            }
        }
    });
}