package io.lumify.core.model.user; import io.lumify.core.util.LumifyLogger; import io.lumify.core.util.LumifyLoggerFactory; import org.securegraph.Authorizations; import org.securegraph.inmemory.InMemoryAuthorizations; import java.util.*; import static org.securegraph.util.IterableUtils.toArray; public class InMemoryAuthorizationRepository implements AuthorizationRepository { private static final LumifyLogger LOGGER = LumifyLoggerFactory.getLogger(InMemoryAuthorizationRepository.class); private List<String> authorizations = new ArrayList<String>(); @Override public void addAuthorizationToGraph(String... auths) { for (String auth : auths) { LOGGER.info("Adding authorization to graph user %s", auth); authorizations.add(auth); } } @Override public void removeAuthorizationFromGraph(String auth) { LOGGER.info("Removing authorization to graph user %s", auth); authorizations.remove(auth); } @Override public List<String> getGraphAuthorizations() { LOGGER.info("getting authorizations"); return new ArrayList<String>(authorizations); } @Override public Authorizations createAuthorizations(Set<String> authorizationsSet) { return createAuthorizations(toArray(authorizationsSet, String.class)); } @Override public Authorizations createAuthorizations(String[] authorizations) { return new InMemoryAuthorizations(authorizations); } @Override public Authorizations createAuthorizations(Authorizations authorizations, String... additionalAuthorizations) { Set<String> authList = new HashSet<String>(); Collections.addAll(authList, authorizations.getAuthorizations()); Collections.addAll(authList, additionalAuthorizations); return createAuthorizations(authList); } }