package io.lumify.core.security; import io.lumify.web.clientapi.model.VisibilityJson; import org.securegraph.Visibility; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; public class DirectVisibilityTranslator extends VisibilityTranslator { public void init(Map configuration) { } @Override public LumifyVisibility toVisibility(VisibilityJson visibilityJson) { return new LumifyVisibility(toVisibilityNoSuperUser(visibilityJson)); } @Override public Visibility toVisibilityNoSuperUser(VisibilityJson visibilityJson) { StringBuilder visibilityString = new StringBuilder(); List<String> required = new ArrayList<String>(); String source = visibilityJson.getSource(); if (source != null && source.trim().length() > 0) { required.add(source.trim()); } Set<String> workspaces = visibilityJson.getWorkspaces(); if (workspaces != null) { required.addAll(workspaces); } for (String v : required) { if (visibilityString.length() > 0) { visibilityString.append("&"); } visibilityString .append("(") .append(v) .append(")"); } return new Visibility(visibilityString.toString()); } @Override public Visibility getDefaultVisibility() { return new Visibility(""); } }