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

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

Introduction

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

Prototype

public Object remove(String key) 

Source Link

Document

Remove an entry from this object.

Usage

From source file:org.entcore.directory.controllers.UserController.java

License:Open Source License

@Put("/user/:userId")
@SecuredAction(value = "", type = ActionType.RESOURCE)
public void update(final HttpServerRequest request) {
    bodyToJson(request, new Handler<JsonObject>() {
        @Override/*from  w  w  w  .  j  a va 2s .c  om*/
        public void handle(final JsonObject body) {
            UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
                public void handle(UserInfos user) {
                    String userId = request.params().get("userId");

                    //User name modification prevention for non-admins.
                    if (!user.getFunctions().containsKey(DefaultFunctions.SUPER_ADMIN)
                            && !user.getFunctions().containsKey(DefaultFunctions.ADMIN_LOCAL)
                            && !user.getFunctions().containsKey(DefaultFunctions.CLASS_ADMIN)) {
                        body.remove("lastName");
                        body.remove("firstName");
                    }
                    userService.update(userId, body, notEmptyResponseHandler(request));

                    UserUtils.removeSessionAttribute(eb, userId, PERSON_ATTRIBUTE, null);
                }
            });
        }
    });
}

From source file:org.entcore.directory.services.impl.DefaultTimetableService.java

License:Open Source License

@Override
public void updateClassesMapping(final String structureId, final JsonObject mapping,
        final Handler<Either<String, JsonObject>> handler) {

    classesMapping(structureId, new Handler<Either<String, JsonObject>>() {
        @Override//from  ww  w. j  a  v  a  2s  . c  o  m
        public void handle(Either<String, JsonObject> event) {
            if (event.isRight()) {
                final JsonObject cm = event.right().getValue();
                if (cm == null || cm.getJsonArray("unknownClasses") == null) {
                    handler.handle(new Either.Left<String, JsonObject>("missing.classes.mapping"));
                    return;
                }
                final JsonArray uc = cm.getJsonArray("unknownClasses");
                final JsonObject m = mapping.getJsonObject("mapping");
                for (String attr : m.copy().fieldNames()) {
                    if (!uc.contains(attr)) {
                        m.remove(attr);
                    }
                }
                mapping.put("mapping", m.encode());
                final String query = "MATCH (:Structure {id:{id}})<-[:MAPPING]-(cm:ClassesMapping) "
                        + "SET cm.mapping = {mapping} ";
                neo4j.execute(query, mapping.put("id", structureId), validEmptyHandler(handler));
            } else {
                handler.handle(event);
            }
        }
    });
}

From source file:org.entcore.directory.services.impl.DefaultUserService.java

License:Open Source License

@Override
public void get(String id, boolean getManualGroups, JsonArray filterAttributes,
        Handler<Either<String, JsonObject>> result) {

    String getMgroups = "";
    String resultMgroups = "";
    if (getManualGroups) {
        getMgroups = "OPTIONAL MATCH u-[:IN]->(mgroup: ManualGroup) WITH COLLECT(distinct {id: mgroup.id, name: mgroup.name}) as manualGroups, admStruct, admGroups, parents, children, functions, u, structureNodes ";
        resultMgroups = "CASE WHEN manualGroups IS NULL THEN [] ELSE manualGroups END as manualGroups, ";
    }// w w  w. j  a  v a2s .  co m
    String query = "MATCH (u:`User` { id : {id}}) "
            + "OPTIONAL MATCH u-[:IN]->()-[:DEPENDS]->(s:Structure) WITH COLLECT(distinct s) as structureNodes, u "
            + "OPTIONAL MATCH u-[rf:HAS_FUNCTION]->fg-[:CONTAINS_FUNCTION*0..1]->(f:Function) WITH COLLECT(distinct [f.externalId, rf.scope]) as functions, u, structureNodes "
            + "OPTIONAL MATCH u<-[:RELATED]-(child: User) WITH COLLECT(distinct {id: child.id, displayName: child.displayName, externalId: child.externalId}) as children, functions, u, structureNodes "
            + "OPTIONAL MATCH u-[:RELATED]->(parent: User) WITH COLLECT(distinct {id: parent.id, displayName: parent.displayName, externalId: parent.externalId}) as parents, children, functions, u, structureNodes "
            + "OPTIONAL MATCH u-[:IN]->(fgroup: FunctionalGroup) WITH COLLECT(distinct {id: fgroup.id, name: fgroup.name}) as admGroups, parents, children, functions, u, structureNodes "
            + "OPTIONAL MATCH u-[:ADMINISTRATIVE_ATTACHMENT]->(admStruct: Structure) WITH COLLECT(distinct {id: admStruct.id}) as admStruct, admGroups, parents, children, functions, u, structureNodes "
            + getMgroups + "RETURN DISTINCT u.profiles as type, structureNodes, functions, "
            + "CASE WHEN children IS NULL THEN [] ELSE children END as children, "
            + "CASE WHEN parents IS NULL THEN [] ELSE parents END as parents, "
            + "CASE WHEN admGroups IS NULL THEN [] ELSE admGroups END as functionalGroups, "
            + "CASE WHEN admStruct IS NULL THEN [] ELSE admStruct END as administrativeStructures, "
            + resultMgroups + "u";
    final Handler<Either<String, JsonObject>> filterResultHandler = event -> {
        if (event.isRight()) {
            final JsonObject r = event.right().getValue();
            filterAttributes.add("password").add("resetCode").add("lastNameSearchField")
                    .add("firstNameSearchField").add("displayNameSearchField").add("checksum");
            for (Object o : filterAttributes) {
                r.remove((String) o);
            }
        }
        result.handle(event);
    };
    neo.execute(query, new JsonObject().put("id", id),
            fullNodeMergeHandler("u", filterResultHandler, "structureNodes"));
}

From source file:org.entcore.feeder.dictionary.structures.Transition.java

License:Open Source License

private void publishTransition(JsonObject struct, JsonArray classes) {
    if (struct == null)
        return;/*from  w ww .  j av a  2s  .  co  m*/
    final JsonObject structure = struct.copy();
    structure.put("classes", classes);
    structure.remove("created");
    structure.remove("modified");
    structure.remove("checksum");
    log.info("Publish transition : " + structure.encode());
    vertx.eventBus().publish(Feeder.USER_REPOSITORY,
            new JsonObject().put("action", "transition").put("structure", structure));
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

protected void updateUser(JsonObject user) {
    user.remove("Ident");
    user.remove("epj");
    final String attrs = Neo4jUtils.nodeSetPropertiesFromJson("u", user, "id", "externalId", "login",
            "activationCode", "displayName", "email");
    if (isNotEmpty(attrs.trim())) {
        final String updateUser = "MATCH (u:User {" + getTeacherMappingAttribute() + ": {"
                + getTeacherMappingAttribute() + "}}) " + "SET " + attrs;
        txXDT.add(updateUser, user);/*from  w  ww .  jav a 2  s  . c  o m*/
    }
}

From source file:org.entcore.feeder.timetable.udt.UDTImporter.java

License:Open Source License

void addGroup(JsonObject currentEntity) {
    final String id = currentEntity.getString("code_div") + currentEntity.getString(CODE);
    groups.put(id, currentEntity);/*from  www  .j av  a 2 s . c  om*/
    String name = currentEntity.getString("code_div") + " Gr " + currentEntity.getString(CODE);
    if (isEmpty(name)) {
        name = id;
    }
    currentEntity.put("code_gep", codeGepDiv.get(currentEntity.getString("code_div")));
    currentEntity.put("idgpe", currentEntity.remove("id"));
    final String set = "SET " + Neo4jUtils.nodeSetPropertiesFromJson("fg", currentEntity);
    txXDT.add(CREATE_GROUPS + set,
            currentEntity.put("structureExternalId", structureExternalId).put("name", name)
                    .put("displayNameSearchField", Validator.sanitize(name))
                    .put("externalId", structureExternalId + "$" + name).put("id", UUID.randomUUID().toString())
                    .put("source", getSource()));
}

From source file:org.entcore.feeder.utils.Validator.java

License:Open Source License

public String validate(JsonObject object, String acceptLanguage) {
    if (object == null) {
        return i18n.translate("null.object", I18n.DEFAULT_DOMAIN, acceptLanguage);
    }/*  ww  w  .j  a  v a 2 s .  c om*/
    final StringBuilder calcChecksum = new StringBuilder();
    final Set<String> attributes = new HashSet<>(object.fieldNames());
    for (String attr : attributes) {
        JsonObject v = validate.getJsonObject(attr);
        if (v == null) {
            object.remove(attr);
        } else {
            Object value = object.getValue(attr);
            String validator = v.getString("validator");
            String type = v.getString("type", "");
            String err;
            switch (type) {
            case "string":
                err = validString(attr, value, validator, acceptLanguage);
                break;
            case "array-string":
                err = validStringArray(attr, value, validator, acceptLanguage);
                break;
            case "boolean":
                err = validBoolean(attr, value, acceptLanguage);
                break;
            case "login-alias":
                err = validLoginAlias(attr, value, validator, acceptLanguage);
                break;
            default:
                err = i18n.translate("missing.type.validator", I18n.DEFAULT_DOMAIN, acceptLanguage, type);
            }
            if (err != null) {
                if (required.contains(attr)) {
                    return err;
                } else {
                    log.info(err);
                    object.remove(attr);
                    continue;
                }
            }

            if (value instanceof JsonArray) {
                calcChecksum.append(((JsonArray) value).encode());
            } else if (value instanceof JsonObject) {
                calcChecksum.append(((JsonObject) value).encode());
            } else {
                calcChecksum.append(value.toString());
            }
        }
    }
    try {
        checksum(object, calcChecksum.toString());
    } catch (NoSuchAlgorithmException e) {
        return e.getMessage();
    }
    generate(object);
    return required(object, acceptLanguage);
}

From source file:org.entcore.feeder.utils.Validator.java

License:Open Source License

public String modifiableValidate(JsonObject object) {
    if (object == null) {
        return "Null object.";
    }// ww  w .ja v a 2 s . com
    final Set<String> attributes = new HashSet<>(object.fieldNames());
    JsonObject generatedAttributes = null;
    for (String attr : attributes) {
        JsonObject v = validate.getJsonObject(attr);
        if (v == null || !modifiable.contains(attr)) {
            object.remove(attr);
        } else {
            Object value = object.getValue(attr);
            String validator = v.getString("validator");
            String type = v.getString("type", "");
            String err;
            switch (type) {
            case "string":
                if (!required.contains(attr)
                        && (value == null || (value instanceof String && ((String) value).isEmpty()))) {
                    err = null;
                } else {
                    err = validString(attr, value, validator);
                }
                break;
            case "array-string":
                if (!required.contains(attr)
                        && (value == null || (value instanceof JsonArray && ((JsonArray) value).size() == 0))) {
                    err = null;
                } else {
                    err = validStringArray(attr, value, validator);
                }
                break;
            case "boolean":
                err = validBoolean(attr, value);
                break;
            case "login-alias":
                err = validLoginAlias(attr, value, validator);
                break;
            default:
                err = "Missing type validator: " + type;
            }
            if (err != null) {
                return err;
            }
            if (value != null && generate.containsKey(attr)) {
                JsonObject g = generate.getJsonObject(attr);
                if (g != null && "displayName".equals(g.getString("generator"))) {
                    if (generatedAttributes == null) {
                        generatedAttributes = new JsonObject();
                    }
                    generatedAttributes.put(attr + SEARCH_FIELD, removeAccents(value.toString()).toLowerCase());
                }
            }
        }
    }
    if (generatedAttributes != null) {
        object.mergeIn(generatedAttributes);
    }
    JsonObject g = generate.getJsonObject("modified");
    if (g != null) {
        nowDate("modified", object);
    }
    return (object.size() > 0) ? null : "Empty object.";
}

From source file:org.entcore.registry.controllers.WidgetController.java

License:Open Source License

private void registerWidget(final JsonObject widget, final Handler<JsonObject> handler) {
    final String widgetName = widget.getString("name");
    final String applicationName = widget.getString("applicationName");
    widget.remove("applicationName");
    if (widgetName != null && !widgetName.trim().isEmpty()) {
        service.createWidget(applicationName, widget, new Handler<Either<String, JsonObject>>() {
            @Override/*  w w w.  ja  v  a  2 s.c o m*/
            public void handle(Either<String, JsonObject> event) {
                JsonObject j = new JsonObject();
                if (event.isRight()) {
                    j.put("status", "ok");
                } else {
                    j.put("status", "error").put("message", event.left().getValue());
                }
                handler.handle(j);
            }
        });
    } else {
        handler.handle(new JsonObject().put("status", "error").put("message", "invalid.parameters"));
    }
}

From source file:org.entcore.registry.services.impl.DefaultAppRegistryService.java

License:Open Source License

@Override
public void updateRole(String roleId, JsonObject role, JsonArray actions,
        Handler<Either<String, JsonObject>> handler) {
    if (defaultValidationParamsNull(handler, roleId, role, actions))
        return;/*www. j a va  2s .c  o m*/
    role.remove("id");
    String updateValues = "";
    if (role.size() > 0) {
        updateValues = "SET " + nodeSetPropertiesFromJson("role", role);
    }
    String updateActions = "RETURN DISTINCT role.id as id";
    if (actions.size() > 0) {
        updateActions = "DELETE r " + "WITH role " + "MATCH (n:Action) " + "WHERE n.name IN {actions} "
                + "CREATE UNIQUE role-[:AUTHORIZE]->n " + "RETURN DISTINCT role.id as id";
    }
    String query = "MATCH (role:Role {id : {roleId}}) " + "OPTIONAL MATCH role-[r:AUTHORIZE]->(a:Action) "
            + updateValues + updateActions;
    role.put("actions", actions).put("roleId", roleId);
    neo.execute(query, role, validUniqueResultHandler(handler));
}